Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
Решены задачи: все Протестируйте решения : 6-10.
Задачи
A4.1. Даны цифры двух целых чисел: двузначного a2a1 и однозначного b, где a1 — число единиц, a2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
A4.2. Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
A4.3. Даны цифры двух десятичных целых чисел: трехзначного a3a2a1 и двузначного b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков, a3 — число сотен. Получить цифры числа, равного сумме заданных чисел (известно, что это число трехзначное). Числа-слагаемые и число-результат не определять; условный оператор не использовать.
A4.4. Даны целое число k (1 ≤ k ≤ 180) и последовательность цифр 10111213…9899, в которой выписаны подряд все двузначные числа. Определить:
а) номер пары цифр, в которую входит k-я цифра;
б) двузначное число, образованное парой цифр, в которую входит k-я цифра;
в) k-ю цифру, если известно, что: k — четное число; k — нечетное число.
Примечание. Величины строкового типа не использовать.
A4.5. Даны целое число k (1 ≤ k ≤ 150) и последовательность цифр 101102103…149150, в которой выписаны подряд все трехзначные числа от 101 до 150.
Определить k-ю цифру, если известно, что:
k — число, кратное трем;
k — одно из чисел 1, 4, 7, …;
k — одно из чисел 2, 5, 8, …
Примечание. Величины строкового типа не использовать.
A4.6. Даны целые числа h, m, s (0 ≤ h ≤ 23, 0 ≤ m ≤ 59, 0 ≤ s ≤ 59), указывающие момент времени: «h часов, m минут, s секунд». Определить угол (в градусах) между положением часовой стрелки в начале суток и в указанный момент времени.
A4.7. С начала суток часовая стрелка повернулась на y градусов (0 ≤ y ≤ 360, y — вещественное число). Определить число полных часов и число полных минут, прошедших с начала суток.
A4.8. Часовая стрелка образует угол y с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате, 0 ≤ y ≤ 2 . Определить значение угла для минутной стрелки, а также количество полных часов и полных минут.
A4.9. Даны целые числа h, m (0 ≤ h ≤ 12, 0 ≤ m ≤ 59), указывающие момент времени: «h часов, m минут». Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки на циферблате:
а) совпадут;
б) расположатся перпендикулярно друг другу.
A4.10. Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе — любое другое число. Условные операторы и операторы цикла не использовать.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
A4.9
Console.WriteLine(«Задача А4.9»);
var h = int.Parse(Console.ReadLine());
var m = int.Parse(Console.ReadLine());
if (h <= 0 || h >= 12)
{
Console.WriteLine(«h out of boundaries — » + h);
return;
}
if (m <= 0 || m >= 59)
{
Console.WriteLine(«m out of boundaries — » + m);
return;
}
var timeCurrent = h * 3600 + m * 60;
int res1 = 0, res2 = 0;
var degreePerSecHour = 360.0 / (12 * 3600);//Градусов в секунду для часовой стрелки
var degreePerSecMin = 360.0 / (12 * 5 * 60);//Градусов в секунду для минутной стрелки
double mAngle1 = 0.0, mAngle2 = 0.0;
double hAngle1 = 0.1, hAngle2 = 0.1;
bool t1 = true, t2 = true;
while (t1 || t2)
{
timeCurrent++;
if (mAngle1 != hAngle1) //Если углы минутной и часовой стрелок совпадают
{
hAngle1 = Math.Round((timeCurrent * degreePerSecHour), 1);
mAngle1 = Math.Round(((timeCurrent % 3600) * degreePerSecMin), 1);
res1++; //Счётчик времени, сколько прошло сек до достижения результата
}
else
{
t1 = false;
}
if ((Math.Round(Math.Abs(mAngle2 — hAngle2), 1) != 90.0) && (Math.Round(Math.Abs(mAngle2 — hAngle2), 1) != 270.0))//Если угол межу стрелками отличается на 90 градусов
//if (Math.Abs(mAngle2-hAngle2) % 90 != 0)//Если угол межу стрелками отличается на 90 градусов
{
hAngle2 = Math.Round((timeCurrent * degreePerSecHour), 1);
mAngle2 = Math.Round(((timeCurrent % 3600) * degreePerSecMin), 1);
res2++;//Счётчик времени, сколько прошло сек до достижения результата
}
else
{
t2 = false;
}
}
Console.WriteLine();
Console.WriteLine(«Совпадают через = {0:#.##}min, УголМинуты = {1}, УголЧаса = {2} \nОбразуют 90град. через = {3:#.##}min, УголМинуты = {4}, УголЧаса = {5}», res1/60.0, mAngle1, hAngle1, res2 / 60.0, mAngle2, hAngle2);
Console.WriteLine();
A4.7
string y1 = Console.ReadLine();
y1 = y1.Replace(«.»,«,»);
double y = Convert.ToDouble(y1);
if(y <= 360)
{
double h = (y — (y % 30)) / 30;
double m1 = (y — (h * 30)) / 0.5;
double m2 = Math.Round(m1, 0);
Console.WriteLine($»{h}:{m2}»);
}
else
{
Console.WriteLine($»Вы ввели не корректное кол-во градусов»);
}
A4.6
Console.WriteLine(«Введите время, пример: 14:21:56 — 14 часов, 21 минута, 56 секунд.»);
string str = Console.ReadLine();
string[] nums = str.Split(new char[] {‘:’});
int h = 0;
int m = 0;
int s = 0;
if(1 <= nums.Length && nums[0] != string.Empty) {h += int.Parse(nums[0]);}
if(2 <= nums.Length && nums[1] != string.Empty) {m += int.Parse(nums[1]);}
if(3 <= nums.Length && nums[2] != string.Empty) {s += int.Parse(nums[2]);}
double gradus = 0;
if( h <= 23 && m <= 59 && s <= 59 &&
h >= 0 && m >= 0 && s >= 0 )
{
gradus += (h * 30) + (m * 0.5) + (s * 0.0083);
Console.WriteLine($»{str} — Будет: {gradus} градусов.»);
}
else
{
Console.WriteLine(«Вы ввели некорректное время.»);
}
A4.2.
// Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков. Получить цифры числа,
// равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять;
// условный оператор не использовать.
Console.WriteLine(«Vvedite cherez enter3 chisla: dvuznachnoe a1a2, gde desjatok(a1 ->enter),edinici (a2->enter),» +
«dvuznachnoe b1b2 gde desjatok(b1 ->enter),edinici (b2->enter)»);
int a1 = Convert.ToInt32(Console.ReadLine());//50
int a2 = Convert.ToInt32(Console.ReadLine());//1
int b1 = Convert.ToInt32(Console.ReadLine());//10
int b2 = Convert.ToInt32(Console.ReadLine());//6
int desjatki = (a1+a2+b1+b2)/10 ;// (50+1+10+6) /10=67/10=6.7==6
int edinici = (a2+b2) % 10;// (1+6)/10=0.7 ostatok=7
Console.WriteLine(«desjatki»+desjatki);//5
Console.WriteLine(«edinici»+edinici);//7
}
A4.1
{
// Даны цифры двух целых чисел: двузначного a2a1 и однозначного b, где a1 — число единиц, a2 — число десятков.
// Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное).
// Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
Console.WriteLine(«Vvedite cherez enter3 chisla: dvuznachnoe a1a2, gde desjatok (a1 ->enter), edinici (a2->enter), odnoznachnoe chislo (b->enter) «);
int a1 = Convert.ToInt32(Console.ReadLine());//50
int a2 = Convert.ToInt32(Console.ReadLine());//1
int b = Convert.ToInt32(Console.ReadLine());//6
int desjatki = (a1+a2+b)/10 ;//(50+1+6) /10=5
int edinici = (a2+b) % 10;//7/10=0.7 ostatok=7
Console.WriteLine(desjatki);//5
Console.WriteLine(edinici);//7
}
Даны целое число k (1 ≤ k ≤ 180) и последовательность цифр 10111213…9899, в которой выписаны подряд все двузначные числа. Определить:
а) номер пары цифр, в которую входит k-я цифра;
б) двузначное число, образованное парой цифр, в которую входит k-я цифра;
в) k-ю цифру, если известно, что: k — четное число; k — нечетное число.
Примечание. Величины строкового типа не использовать.
A4.3. Даны цифры двух десятичных целых чисел: трехзначного a3a2a1 и двузначного b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков, a3 — число сотен. Получить цифры числа, равного сумме заданных чисел (известно, что это число трехзначное). Числа-слагаемые и число-результат не определять; условный оператор не использовать.
A4.9. Даны целые числа h, m (0 ≤ h ≤ 12, 0 ≤ m ≤ 59), указывающие момент времени: «h часов, m минут». Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки на циферблате:
а) совпадут;
б) расположатся перпендикулярно друг другу.
С небольшими усложнениями получилось вот такое решение, но как его сократить (особенно с объявлением кучи переменных)?
Проверь время 9:14
A4.7. С начала суток часовая стрелка повернулась на y градусов (0 ≤ y ≤ 360, y — вещественное число). Определить число полных часов и число полных минут, прошедших с начала суток.
Ильяс, начало верное и число полных часов найдено верно, но:
У меня программа все выводит верно,а есть неполные минуты?Можете обьяснить?
Ильяс, вот уточнения:
A4.1. Даны цифры двух целых чисел: двузначного a2a1 и однозначного b, где a1 — число единиц, a2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
Ильяс, движение в верном направлении, но есть ошибки:
— вам нужно вывести цифры отдельно
— вам нельзя использовать «число-результат == summa»
Иными словами, вы решили тем способом, который данная задача не позволяет.
System.Console.WriteLine(«Введите число десятков 1-го числа»);
int a2 = Convert.ToInt32(Console.ReadLine());
System.Console.WriteLine(«Введите число единиц 1-го числа»);
int a1 = Convert.ToInt32(Console.ReadLine());
System.Console.WriteLine(«Введите число десятков 2-го числа»);
int b2 = Convert.ToInt32(Console.ReadLine());
System.Console.WriteLine(«Введите число единиц 2-го числа»);
int b1 = Convert.ToInt32(Console.ReadLine());
int a2b2 = a2+b2+(b1+a1)/10;
int a1b1 = (b1+a1)%10;
System.Console.WriteLine((«Результат сложения = {0}{1}») , a2b2 , a1b1);
A4.10. Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе — любое другое число. Условные операторы и операторы цикла не использовать.
using System;
namespace ДЗ1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(«Введите 2 числа для расчетов»);
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = a % b;
int d = b % a;
int Summ = (c * d) + 1;
Console.WriteLine(Summ);
}
}
}
using System;
namespace WorkInHome6
{
internal class Program
{
static void Main(string[] args)
{
int numA = int.Parse(Console.ReadLine());
int numB = int.Parse(Console.ReadLine());
int result = numA / numB;
result = result > 0 ? 1 : 28;
Console.WriteLine(result);
int result2 = numB / numA;
result2 = result2 > 0 ? 1 : 29;
Console.WriteLine(result2);
}
}
}
Это работать не будет. Выражение value1 / value2 ,будет равно 0 только в случае когда 0 <= value1 < value2
В данном случае надо не делить, а брать остаток от деления.
A4.6.
static void Main(string[] args)
{
//Ввод пользователем времени
//Разбиваем на массив с 3-мя элементами
//Конвертируем в тип integer
Console.WriteLine(«Введите пожалуйста время в 24 часовом формате ЧЧ.ММ.СС «);
string time = Console.ReadLine();
string[] time1 = time.Split(‘.’, ‘,’, ‘:’, ‘;’);
int[] time2 = Array.ConvertAll(time1, int.Parse);
Console.WriteLine(time2[0]);
//НЕ позволяет пользователю выйти за условия (0 ≤ h ≤ 23, 0 ≤ m ≤ 59, 0 ≤ s ≤ 59)
do
{
time = Console.ReadLine();
time1 = time.Split(‘.’, ‘,’, ‘:’);
time2 = Array.ConvertAll(time1, int.Parse);
Console.WriteLine(time2[0]);
}
while (time2[0] >= 24|| time2[0] = 60 || time2[1]= 60 || time2[2] 180)
{
Console.Write(360-g);
}
else
{
Console.WriteLine();
Console.WriteLine(g);
}
}
}
A4.1. Даны цифры двух целых чисел: двузначного a2a1 и однозначного b, где a1 — число единиц, a2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
while (true)
{
int a2, a1, b;
int ones = a1 + b;
if (ones => 10)
{
a2++;
}
int resultTens = a2;
int resultOnes = ones % 10;
int result = resultTens + resultOnes;
if (result > 99)
{
Console.WriteLine(«Attention, sum of a2a1 and b can`t be > 99»);
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
Задача 4.4
//Определить номер пары цифр, в которую входит k-я цифра
Console.WriteLine(«Введите число 1 <= k <= 180");
int k = Convert.ToInt32(Console.ReadLine());
int num = (k + 1) / 2;
Console.WriteLine($"{num}-я пара цифр");
//Определить двузначное число, образованное парой цифр,
//в которую входит k — я цифра
num += 9;
Console.WriteLine($"Число {num}");
//Определить k-ю цифру, если известно, что k — четное число
if (k % 2 == 0)
{
num = k % 20 / 2 + 1;
}
else
//Определить k-ю цифру, если известно, что k — нечетное число
{
num = k / 20 + 1;
}
Console.WriteLine($"Цифра {num}");
Console.ReadKey();
подскажите, пожалуйста, как понять задание 3)Определить k-ю цифру, если известно, что k — четное число или k — нечетное число? при каких исходных данных какой ответ должен получиться? не могу никак понять это задание. заранее благодарю за ответ!
A4.2. Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
Андрей! Такое решение уже было у Эда. Ваш вариант более понятен, так как результат следует сразу после ввода данных.
A4.1 Даны цифры двух целых чисел: двузначного a2a1 и однозначного b, где a1 — число единиц, a2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.
Андрей! Верно.
A4.6 — 4.10
Прошу желающих протестировать это решение.
A4.5 Даны целое число k (1 ≤ k ≤ 150) и последовательность цифр 101102103…149150, в которой выписаны подряд все трехзначные числа от 101 до 150.
Определить k-ю цифру, если известно, что:
k — число, кратное трем;
k — одно из чисел 1, 4, 7, …;
k — одно из чисел 2, 5, 8, …
Примечание. Величины строкового типа не использовать.
Эд! Верно.
Задачи A4.1 — A4.4:
Эд!
Ваше замечание к условию задачи 4 «Кажется, нужно немного подправить диапазон значений k» учел, спасибо за внимательность.
Решения всех задач логичны и лаконичны.
Спасибо за подсказку по Vvod_Chisla_Int().
Ваш вариант с аргументом симпатичнее!
пожалуйста.
Если пользователь решит ввести четыре 9-ки. То будет неверно (т.е. не получится двузначное число). ?
Значит нужно задавать условия?
A4.6. Даны целые числа h, m, s (0 ≤ h ≤ 23, 0 ≤ m ≤ 59, 0 ≤ s ≤ 59), указывающие момент времени: «h часов, m минут, s секунд». Определить угол (в градусах) между положением часовой стрелки в начале суток и в указанный момент времени.
Решение:
Андрей! Зачет. Будем считать начало суток до полдня.