Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
А вот и первое решение от Никиты.
Решены задачи: 1-3,5-9 Не решены: 4.
Задачи
A1.1. Дано расстояние в сантиметрах. Найти число полных метров в нем.
A1.2. Дана масса в килограммах. Найти число полных центнеров в ней.
A1.3. Дана масса в килограммах. Найти число полных тонн в ней.
A1.4. Дано расстояние в метрах. Найти число полных километров в нем.
A1.5. С некоторого момента прошло 234 дня. Сколько полных недель прошло за этот период?
A1.6. С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
A1.9. С начала 2020 года по некоторый день прошло n месяцев и 2 дня. Присвоить целочисленной величине x значение 1, 2, …, 11 или 12 в зависимости от того, каким месяцем (январем, февралем и т.п.) является месяц этого дня. Например, при n=3 значение х равно 4.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
![]() |
![]() |
![]() |
![]() |
//Задача А1.6
Console.WriteLine(«Введите кол-во секунд»);
int sec = Convert.ToInt32(Console.ReadLine());
int i = 0;
int min = 0;
int hours = 0;
int seccount = sec;
while (seccount>0)
{
i++;
if (i%60 == 0) { min++; }
if (i%3600 == 0) { hours++; }
seccount—;
}
Console.WriteLine($»Часов прошло: {hours}\n» +
$»Минут: {min}\n» +
$»Минут после последнего часа: {min-hours*60}\n» +
$»Секунд после последней минуты: {sec-min*60}»);
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
int heightBigSquere, widthBigSquere, sideSmallSquere, heightnumberSmallSquere , widthnumberSmallSquere, numberSmallSquere;
while(true)
{
Console.WriteLine($»Сколько маленьких квадратов размеры которого заданны пользователем, поместиться в большой прямоугольник так же заданный пользователем»);
Console.Write(«Введите высоту большого прямоугольника: «);
heightBigSquere = Convert.ToInt32(Console.ReadLine());
Console.Write(«Введите ширину большого прямоугольника: «);
widthBigSquere = Convert.ToInt32(Console.ReadLine());
Console.Write(«Введите сторону маленького квадрата: «);
sideSmallSquere = Convert.ToInt32(Console.ReadLine());
if ((heightBigSquere > 0) && (widthBigSquere > 0) && (sideSmallSquere > 0))
{
heightnumberSmallSquere = heightBigSquere / sideSmallSquere;
widthnumberSmallSquere = widthBigSquere / sideSmallSquere;
numberSmallSquere = heightnumberSmallSquere * widthnumberSmallSquere; // Если хоть одна из переменных будет равна нулю, значит ни одного квадрата нельзя поместить в данный прямоугольник
if (numberSmallSquere > 0)
{
Console.WriteLine($»\nВ прямоугольник с размерами {heightBigSquere}x{widthBigSquere}мм можно поместить {numberSmallSquere} квадрата(ов) с размером стороны — {sideSmallSquere}мм»);
}
else
{
Console.WriteLine(«\nНи одного квадрата нельзя разместить в заданном прямоугольнике»);
}
}
else
{
Console.WriteLine(«\nОдин или более параметров были заданны не верно!»);
}
Console.WriteLine(«\n\tЖелаете продолжить расчеты? \nДа — введите 1 \nНет — нажмите любую клавишу»);
string answer = Console.ReadLine();
if (answer == «1»)
{
Console.WriteLine(«———————————————- \n\n»);
}
else
{
Console.WriteLine(«———————————————- \n\n»);
break;
}
}
A1.8
Console.WriteLine(«which day is it»);
Console.Write(«Input a day of the week for the January 1 (1 for monday, 7 for sunday): «);
uint January1 = uint.Parse(Console.ReadLine() ?? «no data»);
Console.Write(«Input a day to check it’s week day: «);
uint DayInYear = uint.Parse(Console.ReadLine() ?? «no data»);
uint FindedWeekDay = (DayInYear — 1 + January1) % 7;
string[] WeekDays = { «Monday», «Tuesday», «Wednesday», «Thursday», «Friday», «Saturday», «Sunday» };
Console.WriteLine($»It’s {WeekDays[FindedWeekDay — 1]}»);
0,43×1+1,24×2-0,58×3=2,71
0,74×1+0,83×2+1,17×3=1,26 1,43×1-1,58×2+0,83×3=1,03
namespace A1._9
{
class Program
{
static void Main(string[] args)
{
int n = 3; // number of months passed
int x;
if (n >= 0 && n <= 11) {
x = n + 1;
} else {
x = 12;
}
Console.WriteLine(«The value of x is: » + x);
namespace A1._9
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(«Сколько полных месяцев прошло с начала года? «);
int n = int.Parse(Console.ReadLine());
if (n > 11)
{
Console.WriteLine(«В году только 12 месяцев!»);
}
else
{
int x = n + 1;
switch (x)
{
case 1:
Console.WriteLine(«Текущий месяц январь.»);
break;
case 2:
Console.WriteLine(«Текущий месяц февраль.»);
break;
case 3:
Console.WriteLine(«Текущий месяц март.»);
break;
case 4:
Console.WriteLine(«Текущий месяц апрель.»);
break;
case 5:
Console.WriteLine(«Текущий месяц май.»);
break;
case 6:
Console.WriteLine(«Текущий месяц июнь.»);
break;
case 7:
Console.WriteLine(«Текущий месяц июль.»);
break;
case 8:
Console.WriteLine(«Текущий месяц август.»);
break;
case 9:
Console.WriteLine(«Текущий месяц сентябрь.»);
break;
case 10:
Console.WriteLine(«Текущий месяц октябрь.»);
break;
case 11:
Console.WriteLine(«Текущий месяц ноябрь.»);
break;
case 12:
Console.WriteLine(«Текущий месяц декабрь.»);
break;
default:
break;
}
}
Console.ReadLine();
}
}
namespace a1._8
{
class Program
{
static void Main(string[] args)
{
int yearDay = 0;
Console.Write(«Введите k-тый день года: «);
int k = int.Parse(Console.ReadLine());
if (k<1 | k > 365)
{
Console.WriteLine(«Вы вышли за границы диапазона!»);
}
else
{
Console.WriteLine(«Укажите номер дня недели на который пришлось 1-е января в данном году: «);
int weekDay = int.Parse(Console.ReadLine());
if (k <= 7)
{
yearDay = (k — 1) + weekDay;
//Console.WriteLine(yearDay);
}
else
{
yearDay = (k — (8 — weekDay)) % 7;
//Console.WriteLine(yearDay);
}
switch (yearDay)
{
case 1:
Console.WriteLine(«k-тый день года понедельник»);
break;
case 2:
Console.WriteLine(«k-тый день года вторник»);
break;
case 3:
Console.WriteLine(«k-тый день года среда»);
break;
case 4:
Console.WriteLine(«k-тый день года четверг»);
break;
case 5:
Console.WriteLine(«k-тый день года пятница»);
break;
case 6:
Console.WriteLine(«k-тый день года суббота»);
break;
case 7:
Console.WriteLine(«k-тый день года воскресенье»);
break;
}
}
Console.ReadLine();
}
}
}
//A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
int height = 543, width = 130, sideCube= 130;
int xHeight = (int)(width / sideCube);
int yWidth = (int)(height / sideCube);
int total = xHeight * yWidth;
Console.WriteLine($»Squares with a side of {sideCube} mm can be cut from Rectangle with side {height} x {width}, is = {total}»);
Ширина не нужна ни у квадрата ни у треугольника.
double result = 543 % 130;
Квадрата и прямоугольника имела ввиду.
int s;
int a = 543;
int b = 130;
int squadrat;
int kolichestvo;
s = a * b;
Console.WriteLine(«Площадь прямоугольнка равна » + s + » мм в квадрате»);
squadrat = b * b;
Console.WriteLine(«площадь квадрата равна » + squadrat + » мм в квадрате»);
kolichestvo = s / squadrat;
Console.WriteLine(kolichestvo + » штук — количество квадратов, которое можно отрезать «);
1.1
double cm, m;
Console.WriteLine(«cm = «);
cm = double.Parse(Console.ReadLine());
m = cm / 100;
Console.WriteLine(«метр = » + m);
A 1.6
Random random = new Random();
float cm = random.Next(1, 10000);
float m = cm / 100;
Console.WriteLine(Math.Floor(m));
A1.4 using System; namespace ConsoleApp72 { internal class Program { static void Main(string[] args) { Console.WriteLine("Введите число в метрах"); int a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Результат км: " +a/1000); } } }
А1.8
Я пол дня сижу и не могу понять как возникла формула n = (k + d) % 7 — 1;
Решение правильное, но я не могу понять почему! Буду очень благодарен, если напишите логическое разъяснение, почему мы к порядковому номеру дня прибавляем..
Нескромный вопрос: как сработает код, если порядковый номер дня меньше семи? Например, ищем четвертый день года, новый год был в среду?
A1.6
В 1.9 можно ли использовать следующее решение? С учетом того, что количество дней от начала 2020 года выбирается случайным образом.
DateTime DateYear2020 = new DateTime(2020, 1, 1);
Random random = new Random();
int n = random.Next(1, 11);
DateYear2020 = DateYear2020.AddMonths(n).AddDays(2);
Console.WriteLine($»От начала 2020 года прошло {n} месяцев и 2 дня»);
Console.WriteLine($»Эта дата — {DateYear2020}»);
int x = DateYear2020.Month;
Console.WriteLine($»Искомый месяц это {x}»);
Сделал задачку думаю работает как просили :)
A1.6 С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
A1.9 Как можно сократить?
1.8
A1.7 Пытался максимально сократить код.
static void Main (string[] args)
{
double n = System.Math.Floor((543f/130f));
Console.WriteLine(n);
}
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
using System;
namespace ConsoleApp2 {
class Program {
static void Main()
{
int k, n, d;
Console.Write(«День по рахунку зараз — «);
k = Convert.ToInt32(Console.ReadLine());
Console.Write(«В який день тижня було 1 сiчня — «);
d = Convert.ToInt32(Console.ReadLine());
n = (k + d) % 7 — 1;
string[] den = {«Нд»,»Пн»,»Вт»,»Ср»,»Чт»,»Пт»,»Сб»};
for (int i = 0; i < den.Length; i++)
{
if (n == i)
{
Console.WriteLine(den[i]);
}
}
}
}
}
//A1.4
while (true)
{
double m, km;
Console.Write(«Введите количество метров: «);
m = double.Parse(Console.ReadLine());
km = m / 100;
km = Math.Round(km, 1);
Console.Write(«Количество километров: «);
Console.WriteLine(km);
}
Саша, направление верное, но работать не будет. Проверьте и попробуйте. Скорее всего все ошибки станут сразу видны, когда вы назовете имена понятно и правильно (сейчас имена значат иногда противоположное к их содержимому)
A1.8.
//немного обновил, а то при 7-ке выдавало ошибку.
Serj, направление верное, но немного запутались в алгоритме. Возможно более понятные имена переменных Вам помогут верно решить задачу.
A1.1. Дано расстояние в сантиметрах. Найти число полных метров в нем.
Serj, все верно. Но подумайте над более понятными именами переменных.
A1.6. С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
Console.WriteLine(«Количество пройденых секунд «);
var n = int.Parse(Console.ReadLine());
var hours = n / 3600;
var sec_day = n — hours * 3600;
var min = sec_day / 60;
var sec = sec_day — min * 60;
Console.WriteLine(«Прошло «+ hours + » час » + min + » мин » + sec + » сек «);
Console.WriteLine(«#1»);
int cm, m;
Console.WriteLine(«Расстояние в см: «);
cm = Convert.ToInt32(Console.ReadLine());
m = cm / 100;
Console.WriteLine($»В {cm} см {m} метров»);
Console.WriteLine(«#2»);
int kg, c;
Console.Write(«Масса в кг: «);
kg = Convert.ToInt32(Console.ReadLine());
c = kg / 100;
Console.WriteLine($»В {kg} кг {c} центнеров»);
Console.WriteLine(«#3»);
int kg, t;
Console.Write(«Масса в кг: «);
kg = Convert.ToInt32(Console.ReadLine());
t = kg / 1000;
Console.WriteLine($»В {kg} кг {t} тонн»);
Console.WriteLine(«#4»);
int m, km;
Console.Write(«Масса в кг: «);
m = Convert.ToInt32(Console.ReadLine());
km = m / 1000;
Console.WriteLine($»В {m} м {km} км»);
Console.WriteLine(«#5»);
int day = 234, week;
week = day / 7;
Console.WriteLine(«С события прошло {0} полных недель!», week);
Console.WriteLine(«#6»);
int n, h, min, d, s;
Console.Write(«Сколько секунд прошло с начала суток: «);
n = Convert.ToInt32(Console.ReadLine());
h = n / 3600; // полных часов
min = n / 60 — h * 60;
s = n — h * 3600 — min * 60;
Console.WriteLine($»{h} полных часов прошло с начала отсчёта, » +
$»\n{min} полных минут прошло с начала очередного часа, » +
$»\n{s} полных секунд прошло с начала очередной минуты»);
Console.WriteLine(«#7″);
int a = 543, b = 130, a2 = 130, s1, s2, q;
s1 = a * b;
s2 = a2 * a2;
q = s1 / s2;
Console.WriteLine($»{q} полных квадрата можно отрезать»);
Console.WriteLine(«#8»);
int k, n, ch, d;
Console.Write(«Ввдите день: «);
k = Convert.ToInt32(Console.ReadLine());
if (k >= 1 & k = 1 & d = 1 & x <= 12)
{
Console.WriteLine("Прошёл {0}", x — 1);
Console.WriteLine("Cейчас {0}", x);
}
else
{
Console.WriteLine("Не правильно задан месяц!");
}
A1.6. С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
Console.WriteLine(«Введите, сколько прошло часов с начала суток (в секундах) : «);
int ItsTimeNumberOne = int.Parse(Console.ReadLine());
int resultNumberOne = ItsTimeNumberOne / 3600;
Console.WriteLine(«Введите, сколько полных минут прошло с начала очередного часа (в секундах) : «);
int ItsTimeNumberTwo = int.Parse(Console.ReadLine());
int resultNumberTwo = ItsTimeNumberTwo / 60;
Console.WriteLine(«Введите, сколько полных cекунд прошло с начала очередной минуты : «);
int ItsTimeNumberThree = int.Parse(Console.ReadLine());
Console.WriteLine(«С начала суток прошло : «);
Console.WriteLine(resultNumberOne + » часов » + resultNumberTwo + » минут » + ItsTimeNumberThree + » секунд»);
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
program();
static void program()
{
int k, n, d;
Console.WriteLine(«Введите какой сегодня по счету день года:»);
k = Proverka();
Console.WriteLine($»Вы ввели {k} по счету день»);
if (k 366)
{
Console.WriteLine(«Введены неверные значения: количество дней в году не превышает 366 дней.\nПопробуйте еще раз!»);
program();
}
else
{
Console.WriteLine(«Введите с какого дня недели начинается год:\n1 -Понедельник\n2 — Вторник\n3 — Среда\n4 — Четверг\n5 — Пятница\n6 — Суббота\n7 — Воскресенье»);
d = Proverka();
Console.WriteLine($»Вы ввели {d} по счету день недели»);
if (d > 7 && d <= 0)
{
Console.WriteLine("Введены неверные значения: в неделе всего 7 дней недели.\nПопробуйте еще раз!");
program();
}
else
{
n = (k + d) % 7 — 1;
switch (n)
{
case 0:
Console.WriteLine($"{k} день при {d} (воскресенье) дне недели в первый день года соответствует значению 'n' = {n} — Воскресенье");
break;
case 1:
Console.WriteLine($"{k} день при {d} (понедельник) дне недели в первый день года соответствует значению 'n' = {n} — Понедельник");
break;
case 2:
Console.WriteLine($"{k} день при {d} (вторник) дне недели в первый день года соответствует значению 'n' = {n} — Вторник");
break;
case 3:
Console.WriteLine($"{k} день при {d} (среда) дне недели в первый день года соответствует значению 'n' = {n} — Среда");
break;
case 4:
Console.WriteLine($"{k} день при {d} (четверг) дне недели в первый день года соответствует значению 'n' = {n} — Четверг");
break;
case 5:
Console.WriteLine($"{k} день при {d} (пятница) дне недели в первый день года соответствует значению 'n' = {n} — Пятница");
break;
case 6:
Console.WriteLine($"{k} день при {d} (суббота) дне недели в первый день года соответствует значению 'n' = {n} — Суббота");
break;
}
}
}
static int Proverka()
{
string a = Console.ReadLine();
int b;
bool result1 = int.TryParse(a, out b);
if (result1 == true)
{
if (b <= 0)
{
Console.WriteLine($"Значение не может быть отрицательным или нулевым, повторите попытку");
Clean();
program();
}
return b;
}
else
{
Console.WriteLine("Введено неверное значение,введите число, повторите попытку!");
Clean();
program();
}
return b;
}
static void Clean()
{
Console.ReadKey();
Console.Clear();
}
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
using System;
namespace ЗаданияСР
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(«Введите номер дня недели для первого января (если 1 января — понедельник, то 1, если вторник — 2, …, если воскресенье — 7).»);
uint января1 = uint.Parse(Console.ReadLine());
Console.WriteLine(«Введите номер дня от 1 до 365, день недели которого нужно определить»);
uint DayOfWeek = uint.Parse(Console.ReadLine());
if (DayOfWeek > 365 || DayOfWeek <= 0)
{
Console.WriteLine("Ваше число не входит в диапазон");
}
else
{
uint day = (DayOfWeek + (января1 — 1)) % 7;
if (day == 1)
{
Console.WriteLine("Понедельник");
}
else if (day == 2)
{
Console.WriteLine("Вторник");
}
else if (day == 3)
{
Console.WriteLine("Среда");
}
else if (day == 4)
{
Console.WriteLine("Четверг");
}
else if (day == 5)
{
Console.WriteLine("Пятница");
}
else if (day == 6)
{
Console.WriteLine("Суббота");
}
else if (day == 0)
{
Console.WriteLine("Воскресенье");
}
else
{
Console.WriteLine("Произошел глюк и хз как его чинить");
}
}
}
}
}
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Евгений! Если это бумага без клея, а не тесто, то Ваше общее решение будет неверным, если сторона квадрата будет больше высоты, даже при очень большой длине. Сравните другие решения с Вашим.
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Я сделал решение задачи с вводимыми координатами где одна из сторон прямоугольника равна стороне квадрата. Все ли верно?
Да. Какая задача — таков и ответ. Более того, после ввода сторон прямоугольника можно было бы обойтись одним оператором:
Console.WriteLine(Dlina / Shirina);
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Денис, верно. Но можно было бы и без циклов.
Доброго времени суток.
Верно ли такое решение?
Console.WriteLine(Math.Floor(543f / 130f));
Console.ReadKey();
A1.6. С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
Владислав, верно! А чем не нравятся уже имеющиеся решения?
A1.7. Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
РИК, тоже наглядное решение. В первых были и более короткие.
A1.6. С начала суток прошло n секунд. Определить:
а) сколько полных часов прошло с начала суток;
б) сколько полных минут прошло с начала очередного часа;
в) сколько полных секунд прошло с начала очередной минуты.
А если прошло 3600 секунд, то получается с начала суток прошло 0 секунд?
Да. Но ответ тогда: 1 час 0 минут 0 секунд. Смотрите решения Кирилла, Сергея и Руслана с обсуждениями.
Вернулся к этому разделу, немного изучив циклы и массивы :)
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
Вариант а)
Вариант б) Тоже самое, только в массиве первый элемент сделать последним.
Вариант в) Не понял в чем суть задания :((
Максим!
Задача А решена Вами, но есть и более короткий вариант:
б) и в) для вторника (d=2) и других дней строковый массив не менять.
Добавить ввод d (от 1 до 7), а потом вводить день года.
А также посмотрите решение Никиты и замечания Ивана (выше).
Не совсем понимаю пчм day%7-1 ?
Роман, потому что изначально день года задан, начиная с единицы. А вывести нужно день недели, начиная с нуля.
A1.7 Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Максим! Для конкретной задачи площадь можно не вычислять.
Console.WriteLine(longSideR / sideSquare + » квадрата(ов)»); — ленту режем на квадраты.
Но если shortSideR != sideSquare, тут развилки: ни одного, или … . И Ваш алгоритм даст сбой. Предполагается, что обойдемся без клея.
A1.6. Решение:
Подскажите пожалуйста. Как мой код сделать еще короче?
Выше в комментариях решение задачи:
KIRILL 17.07.2020 в 01:31
Смотрите! Но, главное, что задача решена верно.
A1.2. Дана масса в килограммах. Найти число полных центнеров в ней.
A1.3. Дана масса в килограммах. Найти число полных тонн в ней.
Вот мое решение задач в одном блоке.
Илья! Все верно.
Огромная просьба к Вячеславу Рычкову прокомментировать запись выше.
А для чего использовать оператор %, если результат деления int на int и так будет целое число? Будет ли верным такое решение?
Console.Write(«Ведите массу в килограммах: «);
int kgAmount = Convert.ToInt32(Console.ReadLine());
int tAmount = kgAmount / 1000;
int cAmount = kgAmount / 100;
Console.WriteLine($»Результат: {tAmount} тонн, {cAmount} центнеров»);
Console.ReadKey();
A 1.5 С некоторого момента прошло 234 дня. Сколько полных недель прошло за этот период?
Дмитрий, так. Убрал лишние фигурные скобки.
А1.7.Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Никита! Это Ваше решение, но есть уже решение другого Никиты и комментарии к ним, посмотрите.
Решение неправильное! Ни в коем случае, по площади не считают вместимость….
Я на это и намекал. Хотя для конкретных размеров ответ верный.
A1.9. С начала 2020 года по некоторый день прошло n месяцев и 2 дня. Присвоить целочисленной величине x значение 1, 2, …, 11 или 12 в зависимости от того, каким месяцем (январем, февралем и т.п.) является месяц этого дня. Например, при n=3 значение х равно 4.
Решение:
Андрей! Все верно!
A1.6. С начала суток прошло n секунд. Определить:
Сергей! Решите задачу до конца:
а) полных часов, б) полных минут, в) полных секунд. Например:
4000 = 1 час 6 минут 40 секунд!
Используйте только целые числа, см. комментарии к Вашему первому решению. Успехов.
Два дня над этой задачей свою голову ломал…
P.S. начинающий я только
Руслан! Ваше решение принято.
Сравните с решением Кирилла от 17.07.2020 (чуть выше в комментариях). по-моему, очень близки, но у Кирилла короче код.
Успехов в освоении программирования, пишите.
A1.1. Дано расстояние в сантиметрах. Найти число полных метров в нем.
Сергей! Программа работает, но:
1) В 1 см — 10 м?
2) Если использовать целые числа, то проще так:
Используется свойство целочисленного деления — отбрасываются (не округляются!) доли метра.
да, вы правы) новичок просто)))
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
Никита!
Немного исправил Ваш код. Отмечу:
1) полезно, что сделали цикл многократного решения задачи.
2) проверку ввода лучше делать в цикле do-while (см. код для проверки d).
3) нахождение n через k и d лучше сделать так:
n = (k + d) % 7 — 1;
4) По условию n=0 соответствует воскресенью.
5) Так как n — целое число, то удобнее конструкция switch-case.
Спасибо за комментарий. Обязательно приму к сведению))
Вячеслав, а есть такой способ, при котором я могу ввести число на одной строке и вывести какой-то другой результат на этой же строке, но немного дальше?
Для консольного приложения — вряд ли. Проверил Console.Read() — все равно, пока Enter не нажал, ждет. Нажал Enter — переход на следующую строку. Но! Вы много видели сейчас консольных приложений? (этого много было в 50-80-х годах и начале 90-х прошлого века). Поэтому переходите на Windows-приложения, там можно ВСЕ. Например, изменение содержимого TextBox — это событие, которое может быть обработано.
А если k+d=7, то в выражении n=(k+d)%7-1 получиться (-1). А (-1) это Суббота. Значит нужно в else if ( n==6 || n==-1)- для субботы.
Иван, верное замечание!
Спустя 5 с лишним месяцев найдена ошибка. Опишите, как Вы ее обнаружили.
Поскольку n=0,1,…,6,-1, то Ваш последний оператор else if ( n==6 || n==-1) … «суббота» можно было бы еще проще написать else … «суббота».
Но проверка двух условий даже надежней.
Тестируйте другие программы, может, это Ваш конёк!
Я был так близок к идеальному коду))
Никита! У Вас все еще впереди, не расстраивайтесь! Работайте, анализируйте программы других программистов, подмечайте, как они пишут код.
A1.6
Интересная задачка:)
Кирилл! Правильно.
А 1.7.Дан прямоугольник с размерами 543 х 130 мм. Сколько квадратов со стороной 130 мм можно отрезать от него?
Может кому полезно будет :) Ломал голову 1,5 часа
Никита, не зря голову ломал :) . Зачет!
Полезно то, что задача решена для произвольных чисел, а не только для заданных в условии задачи.
То, что по ветке else, можно eще короче записать:
и не нужны будут переменные a1, area и areaPP.
Все, что по ветке else умещается в:
Console.WriteLine(«В прямоугольнике помещается: {0} квадратов», (int)(a / c) * (int)(b / c));
Эд! Верно, так короче.
Вот мой скромный код:)
Fan, хорошо.
using System;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
start:
Console.WriteLine(«Введите 1 сторону прямоугольника ->»);
string a = Console.ReadLine();
int side1 = Convert.ToInt32(a);
Console.WriteLine(«Введите 2 сторону прямоугольника ->»);
string b = Console.ReadLine();
int side2 = Convert.ToInt32(b);
Console.WriteLine(«Введите сторону квадрата ->»);
string n = Console.ReadLine();
int sidesquad = Convert.ToInt32(n);
if (side1 < sidesquad || side2 < sidesquad)
{
Console.WriteLine("Из прямоугольника данного размеры нельзя вырезать не одного квадрата размером " + sidesquad + "x" + sidesquad);
goto start;
}
int c = side1 / sidesquad;
int d = side2 / sidesquad;
int numofsquad = c * d;
Console.WriteLine("Из прмоугольника данного размера можно вырезать " + numofsquad + " квадратов размера " + sidesquad + "x" + sidesquad);
}
}
}
Вот так тоже можно