Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
А вот и первое решение от Никиты.
Решены задачи: 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: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
A1.5
писал без инпута-принта, код отслеживал в дэбаге.
static void Main(string[] args)
{
int days = 234;
int weeks = 0;
while(days >= 7)
{
days -= 7;
weeks++;
}
}
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
int k = 23; //выбирает пользователь
int d = 2; //выбирает пользователь
int ostatok = k % 7 — 1;
int n = ostatok + d;
Console.WriteLine(n);
// A1.8.
Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
// в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
Console.WriteLine(«Введите K-ый день года, от 1 до 365 дня включительно»);
int K = Convert.ToInt32(Console.ReadLine());
int remainder = (Math.Abs(K—7)+7)%7;
int n=0;
string day = «»;
switch (remainder)
{
case 0: n = 1; day = «Понедельник»; break; // Понедельник
case 1: n = 2; day = «Вторник»; break; // Вторник
case 2: n = 3; day = «Среда»; break; // Среда
case 3: n = 4; day = «Четверг»; break; // Четверг
case 4: n = 5; day = «Пятница»; break; // Пятница
case 5: n = 6; day = «Суббота»; break; // Суббота
case 6: n = 0; day = «Воскресенье»; break; // Воскресенье
}
Console.Write($»{K}-ый день года приходиться на {day}»);
A1.8. Дано целое число k (1 ≤ k ≤ 365). Присвоить целочисленной величине n значение 1, 2, …, 6 или 0 в зависимости от того, на какой день недели (понедельник, вторник, …, субботу или воскресенье) приходится k-й день года, в котором 1 января:
а) понедельник;
б) вторник;
в) d-й день недели (если 1 января — понедельник, то d=1, если вторник — d=2, …, если воскресенье — d=7).
Немного изменил условие задачи. Мне показалось так будет интересней.
Пользователь может сам выбрать месяц, и число, программа выдаст какой будет день недели. Знаю что можно оптимизировать и использовать методы для этого.
но пока я изучаю только массивы
int[][] yers = new int[12][]; //Ступенчатый массив для реализации разного количества дней в месяце
int userImput; //Выбрать день на недели на которое выпало первое января
int userImputMonth; //Выбрать месяц
int userImputNumber; //Выбрать число
for (int i = 0, j = 1; i < 7; i += 2, j += 2) // инициализация месяцев с разным количеством дней
{
yers[i] = new int[31];
yers[j] = new int[30];
}
yers[1] = new int[28];
yers[11] = new int[31];
for (int i = 7, j = 8; i < 11; i += 2, j += 2)
{
yers[i] = new int[31];
yers[j] = new int[30];
}
Console.WriteLine(«Выберите на какой день выпало первое января:\n1 — Понедельник\n2 — Вторник\n3″ +
» — Среда\n4 — Четверг\n5 — Пятница\n6 — Суббота\n7 — Воскресение»);
userImput = int.Parse(Console.ReadLine());
switch (userImput) //С помощью switch инициализируем с какого дня пойдёт год
{
case 1: userImput = 1; break;
case 2: userImput = 2; break;
case 3: userImput = 3; break;
case 4: userImput = 4; break;
case 5: userImput = 5; break;
case 6: userImput = 6; break;
case 7: userImput = 7; break;
default: Console.WriteLine(«Не верно введена команда»); break;
}
for (int i = 0, j, n = userImput — 1; i < yers.Length; i++) // Инициализируем от 1 до 7.
1 — Понедельник и т.д.
{ // Намучился с этим циклом.
// Точно есть метод для такого
j = 0; действия но я его пока не знаю(
for (; j < yers[i].Length; j++, n++)
{
if (n <= 6)
yers[i][j] += n + 1;
else
{
n = -1;
j—;
}
if (j == yers[i].Length)
break;
}
}
Console.WriteLine(«Выберете месяц в котором хотите узнать день недели:\n1 — январь\n2 — февраль\n3 — март\n4 — апрель\n5 — май» +
«\n6 — июнь\n7 — июль\n8 — август\n9 — сентябрь\n10 — октябрь\n11 — ноябрь\n12 — декабрь»);
userImputMonth = int.Parse(Console.ReadLine());
switch (userImputMonth)
{
case 1: userImputMonth = 0; break;
case 2: userImputMonth = 1; break;
case 3: userImputMonth = 2; break;
case 4: userImputMonth = 3; break;
case 5: userImputMonth = 4; break;
case 6: userImputMonth = 5; break;
case 7: userImputMonth = 6; break;
case 8: userImputMonth = 7; break;
case 9: userImputMonth = 8; break;
case 10: userImputMonth = 9; break;
case 11: userImputMonth = 10; break;
case 12: userImputMonth = 11; break;
default: Console.WriteLine(«Не верно введена команда»); break;
}
Console.WriteLine(«Выберите число:»);
userImputNumber = int.Parse(Console.ReadLine());
switch (yers[userImputMonth][userImputNumber — 1])
{
case 1: Console.WriteLine(userImputNumber + » — число будет понедельник»); break;
case 2: Console.WriteLine(userImputNumber + » — число будет вторник»); break;
case 3: Console.WriteLine(userImputNumber + » — число будет среда»); break;
case 4: Console.WriteLine(userImputNumber + » — число будет четверг»); break;
case 5: Console.WriteLine(userImputNumber + » — число будет пятница»); break;
case 6: Console.WriteLine(userImputNumber + » — число будет суббота»); break;
case 7: Console.WriteLine(userImputNumber + » — число будет воскресенье»); break;
default: Console.WriteLine(«Не верно введена команда»); break;
}
Не верное решение. В этой задаче не нужны циклы, массивы, условия, свитчи, даже с учётом того что вы изменили условие. Это арифметическая задача, решается в 5 строк кода, я выложил решение выше. Вы искусственно усложнили код в 15-20 раз. Добавили лишние инструменты.
A1.1
double m = 0;
Console.WriteLine(«cm = «);
double.TryParse(Console.ReadLine(), out double cm);
m = cm / 100;
Console.WriteLine(«метр = » + m);
Console.ReadLine();
Console.Write(«Введите кол-во сантиментров: «);
double c = double.Parse(Console.ReadLine());
c = c * 0.01;
Console.WriteLine(«Целое кол-во метров: » + (int)c);
A1.8
static void Main(string[] args)
{
Console.Write(«Введите первое января любого года, от 1923 года. Формат записи день/месяц/год: «);
DateTime dateJanuary1 = DateTime.Parse(Console.ReadLine());
Console.Write($»Введите количество прошедших дней от {dateJanuary1.ToString(«dd.MM.yyyy»)}, в диапозоне 1 — 365: «);
int kDays =int.Parse(Console.ReadLine());
January1(dateJanuary1, kDays);
}
static public void January1(DateTime january1, int kDay)
{
int? n = null; // числа 1, 2, 3, 4, 5, 6, 0 соответствуют дням недели понедельник, вторник,…, суббота, воскресенье.
int? d = null;// числа от 1 до 7 соответствуют дням недели понедельник, вторник,…, суббота, воскресенье.
DateTime answer = january1.AddDays(kDay);
string today = answer.ToString(«dddd»);
bool kValid = 1 <= kDay && kDay <= 365;
List<string> daysWeek = new List<string>() {«понедельник», «вторник», «среда», «четверг», «пятница», «суббота», «воскресенье» };
if (kValid)
{
for(int i = 0; i < daysWeek.Count; i++)
{
if(january1.ToString(«dddd») == daysWeek[i]) d = i + 1;
if (today == «воскресенье») n = 0;
else if (today == daysWeek[i]) n = i + 1;
}
}
Console.WriteLine($»{n} — {answer.ToString(«dddd»)}»);
Console.WriteLine($»{d} — {january1.ToString(«dddd»)}»);
Console.WriteLine(answer.ToString(«dd.MM.yyyy»));
}
//Задача А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) Если использовать целые числа, то проще так:
Используется свойство целочисленного деления — отбрасываются (не округляются!) доли метра.
да, вы правы) новичок просто)))