31.01.2022

Одновременно навстречу друг другу выехали два автомобиля

Одновременно навстречу друг другу выехали два автомобиля

Их скорости соответственно M и N км/ч. Расстояние между автомобилями в начальный момент времени составляло X км. Через сколько часов они встретятся?

В этой задаче речь идет о движении навстречу друг другу, значит следует понимать, что автомобили сближаются, а значит их скорости суммируются.

Для расчета времени встречи нужно начальное расстояние разделить на сумму скоростей.

Программа решения на языке Паскаль:

Var m,n,x:integer; t:real;

begin

readln(m,n,x);

t:=x/(m+n);

writeln('время встречи = ',t);

end.

Сколько времени ученик проводит в школе

Сколько времени ученик проводит в школе в тот день, когда у него 6 уроков по 40 минут, перемены между первым и вторым уроками 10 минут, между четвертым и пятым уроками 20 минут, остальные перемены по 15 минут?

Вычислим общее время в минутах: 6 уроков по 40 минут + 10 минут (первая перемена) + 20 минут (четвертая перемена) + 3 урока по 15 минут

Программа решения на языке Паскаль:

Var x:integer;

begin

x:=6*40+10+3*15+20;

writeln('время = ',x);

end.

Чему равен размер файла в битах

Известен размер файла в Кбайтах. Чему равен размер файла в битах?

Известно, что в 1 байт = 8 бит, а 1 Кбайт = 1024 байт. Для расчета размера файла в битах исходное значение умножим на 8 и на 1024.

Программа решения на языке Паскаль:

Var k,b:integer;

begin

readln(k);

b:=k*1024*8;

writeln('размер файла в битах ',b);

end.

30.01.2022

Является ли сумма цифр числа двузначным числом

Дано трехзначное число. Определить, является ли сумма его цифр двузначным числом

Вычислим каждую цифру числа, используя операции целочисленного деления div и mod. Полученную сумму цифр проверим на принадлежность промежутку чисел [10; 99], будем использовать два простых условия и логическую операцию and (И).

Программа решения на языке Паскаль:

var n,s:integer;

begin

readln(n);

s:=n div 100 + n mod 100 div 10 + n mod 10;

if (s>=10) and (s<=99) then writeln('да') else writeln('Нет');

end.

Как проверить, является ли число двузначным? (способы проверки на языке Паскаль и Python).

Доход магазина

Известно, что доход магазина в каждый из 12 месяцев года увеличивался на 5% от дохода предыдущего месяца. Найти средний доход магазина в месяц, если в 1-й месяц доход магазина составлял A тыс. руб.

В цикле for, начиная со второго месяца, будем искать доход магазина в каждый месяц (5% от дохода предыдущего месяца) и будем копить общий доход. Для расчета среднего дохода разделим общий доход на 12.

Программа решения:

var i,a:integer;s,p,s1:real;

begin

readln(a);

s:=a; s1:=a;

for i:=2 to 12 do

begin

p:=s*5/100;

s:=s+p;

s1:=s1+s;

end;

writeln(s1/12:2:2);

end.

Как найти натуральные делители числа более эффективно (быстро)

 Как найти натуральные делители числа более эффективно (быстро)?

Пусть N=100.

Делителями числа 100 являются числа: 1, 2, 4, 5, 10, 20, 25, 50, 100.

Найдем "симметричные" пары делителей:

1 и 100, 2 и 50, 4 и 25, 5 и 20, 10 и ...все :)

Найти сумму чисел 1+1/2+1/3+…+1/N

Вычисление суммы гармонического ряда 1 + 1/2 + 1/3 + ... + 1/N

Постановка задачи

Дано натуральное число N. Необходимо вычислить сумму гармонического ряда:

S = 1 + 1/2 + 1/3 + ... + 1/N

Примечание: Для точного результата используем вещественный тип данных.

Алгоритм решения

  1. Вводим значение N с клавиатуры
  2. Инициализируем переменную для суммы (s = 0)
  3. Используем цикл while с параметром i от 1 до N
  4. На каждой итерации добавляем к сумме 1/i
  5. Выводим полученную сумму

Решение на Pascal с пояснениями

program HarmonicSeries;
var
  i, n: integer; // Счетчик и верхняя граница
  s: real;       // Для хранения суммы ряда
begin
  // Ввод числа N
  write('Введите натуральное число N: ');
  readln(n);
  
  // Инициализация переменных
  s := 0;
  i := 1;
  
  // Цикл вычисления суммы
  while i <= n do
  begin
    s := s + 1/i; // Добавляем очередной элемент ряда
    i := i + 1;    // Увеличиваем счетчик
  end;
  
  // Вывод результата с 4 знаками после запятой
  writeln('Сумма ряда: ', s:0:4);
end.

Пояснение работы программы:

  1. Программа запрашивает ввод натурального числа N
  2. Инициализирует переменные: s (сумма) и i (счетчик)
  3. Цикл while выполняется пока i ≤ N
  4. На каждой итерации к сумме добавляется 1/i
  5. После цикла выводится отформатированный результат

Примеры работы программы

Пример 1: N = 5

Введите натуральное число N: 5
Сумма ряда: 2.2833

Пример 2: N = 10

Введите натуральное число N: 10
Сумма ряда: 2.9290

Как проверить, является ли число двузначным

Способы проверки двузначного числа на Pascal и Python

Постановка задачи

Необходимо определить, является ли заданное число двузначным (лежит в диапазоне от 10 до 99 включительно).

Решение на Pascal

Вариант 1: Использование составного условия

if (a > 9) and (a < 100) then 
  writeln('Число двузначное');

if (a >= 10) and (a <= 99) then
  writeln('Число двузначное');

Вариант 2: Использование операции in и множества

if a in [10..99] then
  writeln('Число двузначное');

Вариант 3: Математическая проверка

if (a - 9) * (a - 100) < 0 then
  writeln('Число двузначное');

Проверка чисел со знаком

if abs(a) in [10..99] then
  writeln('Число двузначное (по модулю)');

Решение на Python

Вариант 1: Проверка диапазона

if 10 <= a <= 99:
    print("Число двузначное")

Вариант 2: Проверка с учетом знака

if 10 <= abs(a) <= 99:
    print("Число двузначное (по модулю)")

Вариант 3: Использование range

if abs(a) in range(10, 100):
    print("Число двузначное")

Вариант 4: Проверка длины строки

if len(str(abs(a))) == 2:
    print("Число двузначное")

Сравнение подходов

Метод Pascal Python
Проверка диапазона (a>=10) and (a<=99) 10 <= a <= 99
Работа с отрицательными abs(a) in [10..99] 10 <= abs(a) <= 99
Альтернативные методы Математическая проверка Проверка длины строки

Рекомендации

  • Для Pascal наиболее читаем вариант с in [10..99]
  • Для Python оптимально использовать 10 <= a <= 99
  • Для работы с отрицательными числами всегда используйте abs()
  • Проверка длины строки в Python в целом полезна

Язык Паскаль. Верно ли, что число простое

Проверка числа на простоту: решение на Pascal

Постановка задачи

Дано натуральное число N. Необходимо определить, является ли оно простым.

Простое число - это натуральное число, имеющее ровно 2 делителя (1 и само число). Например: 2, 3, 5, 7, 11, 13.

Алгоритм решения

Используем следующий подход:

  1. Вводим число N с клавиатуры
  2. Инициализируем счетчик делителей k = 0
  3. В цикле от 1 до N проверяем делимость числа N на текущее значение счетчика
  4. Если делитель найден, увеличиваем счетчик k
  5. После цикла проверяем: если k = 2, число простое

Решение на Pascal с пояснениями

program CheckPrimeNumber;
var
  i, n, k: integer;
begin
  // Ввод числа для проверки
  write('Введите натуральное число n=');
  readln(n);
  
  // Инициализация счетчика делителей
  k := 0;
  
  // Цикл поиска делителей
  for i := 1 to n do
    if n mod i = 0 then 
      k := k + 1;
  
  // Проверка количества делителей
  if k = 2 then
    writeln('верно')  // Число простое
  else
    writeln('неверно');  // Число составное
end.

Как работает программа:

  • Программа запрашивает число для проверки
  • Перебирает все возможные делители от 1 до N
  • Подсчитывает количество делителей
  • Выводит "верно", если делителей ровно 2 (число простое)
  • Выводит "неверно" в противном случае

Примеры работы программы

Пример 1: Проверка простого числа

Введите натуральное число n=7
верно

Пример 2: Проверка составного числа

Введите натуральное число n=8
неверно

Оптимизация алгоритма

Данный алгоритм является неэффективным по следующим причинам:

  • Проверяет все числа от 1 до N, хотя достаточно проверить до √N
  • Продолжает проверку после нахождения более двух делителей

Попробуйте оптимизировать алгоритм, используя эти наблюдения.

Проходной балл

Определение проходного балла для поступления в институт

Постановка задачи

Программа должна запросить оценки абитуриента на трех экзаменах и проходной балл, затем определить, принят ли абитуриент в институт.

Проходной балл - это сумма баллов за все экзамены, необходимая для приема в университет.

Алгоритм решения

Используем полное ветвление:

  • Если сумма баллов ≥ проходному баллу → "принят"
  • Иначе → "не принят"

Решение на Pascal с пояснениями

program AdmissionCheck;
var
  a, b, c, p: integer; // a,b,c - оценки, p - проходной балл
begin
  // Ввод оценок за три экзамена
  writeln('Введите оценки за три экзамена (через пробел):');
  readln(a, b, c);
  
  // Ввод проходного балла
  writeln('Введите проходной балл:');
  readln(p);
  
  // Проверка условия поступления
  if (a + b + c) >= p then
    writeln('Принят')
  else
    writeln('Не принят');
end.

Как работает программа:

  1. Программа запрашивает три оценки абитуриента
  2. Запрашивает проходной балл института
  3. Суммирует все оценки
  4. Сравнивает сумму с проходным баллом
  5. Выводит результат проверки

Пример работы программы

Входные данные:

Оценки: 75 80 85
Проходной балл: 230

Вывод программы:

Принят

Операции целочисленного деления div и mod (язык программирования Паскаль, Pascal)

Операции div и mod в языке программирования Паскаль

Основные понятия

Арифметические операции div и mod применяются к данным целого типа и являются операциями деления:

  • div - вычисляет целую часть от деления
  • mod - вычисляет целый остаток от деления

Примеры использования

a := 15 div 2;  // результат равен 7
a := 15 mod 2;  // результат равен 1
a := 127 div 10; // 12
a := 543 div 100; // 5
a := 127 mod 10; // 7
a := 543 mod 10; // 3
a := 108 mod 2; // 0
a := 27 mod 3; // 0
a := 125 mod 5; // 0
a := 49 mod 7; // 0

Применение в условиях

Операции div и mod часто используют в условиях. Примеры можно найти в программе: "Дано натуральное число n. Какое это число?"

Задан проходной балл. Запрашиваются оценки абитуриента на трех экзаменах и сообщается о результате приема в институт.

Читать

Определить, делителем каких целых чисел из А, В и С является целое число N.

Читать

Дано трехзначное число. Определить, является ли сумма его цифр двузначным числом

Читать

Является ли число двузначным

Читать

Известен рост трех человек. Определить, одинаков ли их рост?

Читать

Вывести на экран число 30 раз

Вывод числа 30 раз: решение на Pascal

Постановка задачи

Дано целое число A. Необходимо вывести это число на экран 30 раз, каждое значение с новой строки.

Алгоритм решения

Для решения задачи используем:

  • Оператор цикла for с фиксированным количеством повторений (30)
  • Функцию writeln для вывода числа с переводом строки
  • Простой ввод числа с клавиатуры

Решение на Pascal с пояснениями

program PrintNumber30Times;
var
  i, a: integer;
begin
  // Ввод числа A от пользователя
  writeln('Введите целое число:');
  readln(a);
  
  // Цикл от 1 до 30 включительно
  for i := 1 to 30 do
    // Вывод числа A на каждой итерации
    writeln(a);
end.

Как работает программа:

  1. Программа запрашивает ввод целого числа
  2. Инициализируется цикл со счетчиком от 1 до 30
  3. На каждой итерации цикла число A выводится на новой строке
  4. После 30 повторений программа завершает работу

Пример работы программы

Входные данные: 42

Вывод программы:

42
42
42
... (30 раз)

Дополнительные варианты решения

Альтернативные реализации на Pascal:

// Вариант 1: с использованием while
var
  i, a: integer;
begin
  readln(a);
  i := 1;
  while i <= 30 do
  begin
    writeln(a);
    i := i + 1;
  end;
end.

// Вариант 2: с использованием repeat-until
var
  i, a: integer;
begin
  readln(a);
  i := 1;
  repeat
    writeln(a);
    i := i + 1;
  until i > 30;
end.

Практическое применение

Данная программа демонстрирует:

  • Работу с циклами в Pascal
  • Организацию повторяющихся действий
  • Базовый ввод-вывод данных
  • Использование счетчиков цикла

Циклические алгоритмы: операторы while, repeat, for в Pascal

Подробное руководство по использованию циклов в Pascal с примерами решения задач.

Читать

Определить, делителем каких целых чисел является целое число

Определение делителей среди чисел A, B и C: решение на Pascal

Постановка задачи

Даны три целых числа A, B, C и целое число N. Необходимо определить, для каких из чисел A, B и C число N является делителем.

Алгоритм решения

Для решения задачи используем:

  • Операцию mod (остаток от деления)
  • Краткую форму условного оператора if-then
  • Принцип: если остаток от деления равен 0, то N - делитель

Решение на Pascal с пояснениями

program FindDivisors;
var
  n, a, b, c: integer;
begin
  // Ввод четырех чисел: A, B, C и N
  writeln('Введите четыре целых числа (A, B, C, N через пробел):');
  readln(a, b, c, n);
  
  // Заголовок вывода
  writeln('Число ', n, ' - делитель чисел:');
  
  // Проверка для числа A
  if a mod n = 0 then 
    writeln(a);
  
  // Проверка для числа B
  if b mod n = 0 then 
    writeln(b);
  
  // Проверка для числа C
  if c mod n = 0 then 
    writeln(c);
end.

Как работает программа:

  1. Программа запрашивает ввод четырех целых чисел
  2. Выводит заголовок с указанием проверяемого делителя
  3. Последовательно проверяет каждое число (A, B, C) на делимость на N
  4. Если остаток от деления равен 0, выводит соответствующее число
  5. Используется краткая форма условного оператора без else

Пример работы программы

Входные данные: 15 20 25 5

Вывод программы:

Число 5 - делитель чисел:
15
20
25

Язык Паскаль. Дано натуральное число n. Какое это число? Проверка четности, кратности, на что оканчивается число

Анализ натурального числа: готовые решения на Pascal

Постановка задачи

Дано натуральное число n. Необходимо ответить на следующие вопросы:

  • Число больше 10?
  • Число кратно 3?
  • Число четное?
  • Число оканчивается на 7?
  • Число оканчивается на 23?

Используемые операции

Для решения задачи применяем:

  • Знаки сравнения:
    • > (больше)
    • < (меньше)
    • >= (больше либо равно)
    • <= (меньше либо равно)
    • = (равно)
    • <> (не равно)
  • Операция mod - деление с остатком (для проверки кратности и четности)

Решение на Pascal с пояснениями

program NumberAnalysis;
var
  n: integer;
begin
  writeln('Введите натуральное число:');
  readln(n);  // Ввод числа от пользователя

  // Проверка: число больше 10?
  if n > 10 then 
    writeln('Число больше 10')
  else 
    writeln('Число не больше 10');

  // Проверка кратности 3
  if n mod 3 = 0 then 
    writeln('Число кратно 3')
  else 
    writeln('Число не кратно 3');

  // Проверка четности
  if n mod 2 = 0 then 
    writeln('Число четное')
  else 
    writeln('Число не четное');

  // Проверка окончания на 7
  if n mod 10 = 7 then 
    writeln('Число оканчивается на 7')
  else 
    writeln('Число не оканчивается на 7');

  // Проверка окончания на 23
  if n mod 100 = 23 then 
    writeln('Число оканчивается на 23')
  else 
    writeln('Число не оканчивается на 23');
end.

Как работает программа:

  1. Программа запрашивает у пользователя ввод натурального числа
  2. Последовательно проверяются все условия с помощью оператора if-else
  3. Для каждой проверки выводится соответствующий результат
  4. Операция mod используется для проверки:
    • Кратности (остаток от деления)
    • Четности (деление на 2)
    • Окончания числа (последние цифры)

Особенности проверки окончания числа

  • Для проверки последней цифры используем n mod 10
  • Для проверки двух последних цифр используем n mod 100
  • Аналогично можно проверять окончание на любое количество цифр:
    • 3 цифры: n mod 1000
    • 4 цифры: n mod 10000

Задан проходной балл. Запрашиваются оценки абитуриента на трех экзаменах и сообщается о результате приема в институт.

Решение задачи с использованием условных операторов для проверки проходного балла.

Читать

Определить, делителем каких целых чисел из А, В и С является целое число N.

Программа проверяет делимость чисел с использованием операции mod.

Читать

Дано трехзначное число. Определить, является ли сумма его цифр двузначным числом

Алгоритм разбора числа по цифрам и проверки суммы.

Читать

Является ли число двузначным

Проверка диапазона числа с использованием простых условий.

Читать

Известен рост трех человек. Определить, одинаков ли их рост?

Сравнение трех значений с использованием логических операторов.

Читать

Проверка числа на четность и кратность трем

Использование операций mod для анализа свойств числа.

Читать

Вывести на экран N раз слово "HELLO". Программа решения задачи на языке Паскаль и Python

Как вывести слово "HELLO" N раз: готовые программы с пояснениями

Постановка задачи

Дано натуральное число N. Необходимо вывести на экран слово «HELLO» N раз, каждое с новой строки.

Решение на Python с объяснением ввода данных

# Ввод данных: просим пользователя ввести число N
# Функция input() выводит сообщение и ждет ввода
# int() преобразует строковое значение в целое число
n = int(input('Введите натуральное число N: '))

# Цикл for повторяется n раз
# Переменная _ используется как счетчик, но не участвует в вычислениях
for _ in range(n):
    print('HELLO')  # Вывод слова на каждой итерации

Как работает программа:

  1. Программа выводит приглашение к вводу числа N
  2. Пользователь вводит целое число (например: 5)
  3. Функция int() преобразует ввод в число
  4. Цикл for выполняется ровно N раз
  5. На каждой итерации выводится слово "HELLO"

Решение на Pascal для сравнения

program PrintHello;
var
  i, n: integer;
begin
  writeln('Введите натуральное число N:');
  readln(n);  // Ввод числа N
  
  // Цикл от 1 до n
  for i := 1 to n do
    writeln('HELLO');  // Вывод на каждой итерации
end.

Особенности реализации:

  • Переменная i используется как счетчик цикла
  • Цикл for выполняется от 1 до N включительно
  • writeln автоматически добавляет перевод строки

Альтернативные решения (Python)

# Вариант 1: с использованием умножения строк
print('\n'.join(['HELLO'] * int(input('Введите N: '))))

# Вариант 2: с использованием while
n = int(input('Введите N: '))
while n > 0:
    print('HELLO')
    n -= 1

Примечания:

  • Первый вариант создает список из N элементов "HELLO" и объединяет их через перевод строки
  • Второй вариант использует цикл while с уменьшением счетчика
  • Для учебных целей рекомендуется первый вариант как наиболее "питонический"

Рассчитать цену товара в долларах. Программа на языке Паскаль и Python

Как рассчитать цену товара в долларах по курсу

Алгоритм решения задачи

Для перевода цены товара из рублей в доллары необходимо:

  1. Ввести цену товара в рублях (переменная cr)
  2. Ввести текущий курс доллара (переменная k)
  3. Рассчитать цену в долларах по формуле: cd = cr / k

Решение на Python

Программа для конвертации рублей в доллары на Python:

# Ввод цены товара в рублях
cr = int(input('Введите цену товара в рублях: '))

# Ввод текущего курса доллара
k = float(input('Введите курс доллара (руб за 1 доллар): '))

# Расчет цены в долларах
cd = cr / k

# Вывод результата с округлением до 2 знаков
print(f'Цена товара в долларах: {round(cd, 2)}')

Особенности реализации:

  • Используем float для курса доллара, так как курс может быть дробным
  • Функция round() округляет результат до 2 знаков после запятой
  • Четкие подсказки при вводе данных

Решение на Pascal

Программа для перевода рублей в доллары на Pascal:

program ConvertToDollars;
var
  cr: integer;  // цена в рублях
  k, cd: real;  // курс доллара и цена в долларах
begin
  writeln('Введите цену товара в рублях:');
  readln(cr);
  writeln('Введите курс доллара (руб за 1 доллар):');
  readln(k);
  cd := cr / k;
  writeln('Цена товара в долларах: ', cd:0:2);
end.

Особенности реализации:

  • Используем тип real для работы с дробными числами
  • Формат вывода :0:2 показывает 2 знака после запятой
  • Пошаговый ввод данных с пояснениями

Площадь и периметр прямоугольника. Программа решения задачи на языке Паскаль и Python

Как вычислить площадь и периметр прямоугольника: готовые программы с пояснениями

Формулы для расчетов

Перед тем как писать код, вспомним основные формулы:

  • Площадь прямоугольника S = a × b
  • Периметр прямоугольника P = 2 × (a + b)

Решение на Python с объяснением ввода данных

# Ввод данных: просим пользователя ввести две стороны прямоугольника
# Функция input() выводит сообщение и ждет ввода
# split() разделяет введенную строку по пробелам
# map(int, ...) преобразует строковые значения в целые числа
a, b = map(int, input('Введите длину и ширину прямоугольника через пробел: ').split())

# Вычисление площади (произведение сторон)
s = a * b

# Вычисление периметра (удвоенная сумма сторон)
p = 2 * (a + b)

# Вывод результатов с пояснениями
print(f'При сторонах {a} и {b}:')
print(f'Площадь прямоугольника равна: {s}')
print(f'Периметр прямоугольника равен: {p}')

Как работает ввод данных:

  1. Программа выводит приглашение к вводу
  2. Пользователь вводит два числа через пробел (например: 5 10)
  3. Метод split() разделяет строку на части по пробелу
  4. Функция map(int, ...) преобразует строки в числа
  5. Числа присваиваются переменным a и b

Решение на Pascal для сравнения

var
  a, b, s, p: integer;
begin
  writeln('Введите длину и ширину прямоугольника (через пробел):');
  readln(a, b);
  s := a * b;
  p := 2 * (a + b);
  writeln('При сторонах ', a, ' и ', b, ':');
  writeln('Площадь прямоугольника равна: ', s);
  writeln('Периметр прямоугольника равен: ', p);
end.