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

Натуральное число N вводится с клавиатуры. Найти сумму чисел 1+1/2+1/3+…+1/N. 

Запустим цикл while с начальным значением счетчика i = 1 и условием продолжения цикла i<=n. В теле цикла будем накапливать сумму слагаемых 1/i и увеличивать значение счетчика на 1.

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

var i,n:integer; s:real;

begin

readln(n);

s:=0; i:=1;

while i<=n do

begin

s:=s+1/i;

i:=i+1;

end;

writeln(s);

end.

Результат запуска программы

1 запуск
2 запуск

Операторы цикла (читать)

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

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

Язык Паскаль

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

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

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

Используем операцию вхождения in и множество

if a in [10..99] then // число двузначное

Используем простое условие и математику

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

Все эти условия работают только для положительных двузначных чисел. Если есть необходимость проверить и отрицательное число, тогда можно использовать функцию модуль числа abs(a).

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

if abs(a) in [10..99] then // число двузначное

Язык Python

if 10<=a<=99:

if 10<=abs(a)<=99:

if abs(a) in range(10,100):

if len(str(abs(a)))==2: # используем строку

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

Задача. Дано натуральное число N, верно ли, что оно простое?

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

Как будем решать задачу

Введем с клавиатуры число N. Переменной k (количество делителей) присвоим 0.

Запустим цикл for с счетчиком i от 1 до N, будем проверять условие: если число делится на значение счетчика без остатка, то значение счетчика - это делитель числа, будем увеличивать количество k на 1.

За циклом проверим условие: если количество делителей равно 2, то число простое (сообщение 'верно'), иначе число не простое (сообщение 'неверно').

Программа решения на языке Паскаль (неэффективный алгоритм):

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.

Результат запуска программы

результат запуска

результат запуска

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

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

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

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

Воспользуемся полным ветвлением. Если сумма баллов больше либо равна проходному баллу, то студен принят, иначе не принят.

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

var a,b,c,p:integer;

begin

readln(a,b,c);

readln(p);

if a+b+c>=p then writeln('принят') else writeln('не принят');

end.


Операции целочисленного деления 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 раз

Дано целое число A. Вывести на экран в столбец 30 раз число A.

Введем число a с клавиатуры. Воспользуемся оператором цикла for с счетчиком i от 1 до 30, в теле цикла будем выводить число a.

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

var i,a:integer;

begin

readln(a);

for i:=1 to 30 do

writeln(a);

end.

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

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

Воспользуемся кратким ветвлением и операцией mod для вычисления остатка от деления. Если остаток от деления числа на число n равен 0, то число n является делителем заданного числа.

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

var n,a,b,c:integer;

begin

readln(a,b,c,n);

writeln('число ', n,' - делитель чисел:');

if a mod n=0 then writeln(a);

if b mod n=0 then writeln(b);

if c mod n=0 then writeln(c);

end.

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

Задача. Дано натуральное число n. Ответить на вопросы:

  1. Число больше 10?
  2. Число кратно 3?
  3. Число четное?
  4. Число оканчивается на 7?
  5. Число оканчивается на 23?

Воспользуемся простыми условиями и применим оператор ветвления в полной форме.

Знаки сравнения

  • > (больше)
  • < (меньше)
  • >= (больше либо равно)
  • <= (меньше либо равно)
  • = (равно)
  • <> (не равно).

Чтобы узнать, кратно число какому-либо числу, воспользуемся операцией mod (деление с остатком). Например, если остаток от деления числа n на 2 равен 0, число кратно 2 (четно).

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

Var n:integer;

begin

readln(n);

if n>10 then writeln('число больше 10') else writeln('число не больше 10');

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

if n mod 2=0 then writeln('число четное') else writeln('число не четное');

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

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

end.

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

Читать

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

Читать

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

Читать

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

Читать

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

Читать

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

Задача. Дано натуральное число N. Вывести на экран в столбец N раз слово «HELLO»

Воспользуемся оператором цикла for с счетчиком i от 1 до n, в теле цикла выведем слово "HELLO" на экран.

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

var i,n:integer;

begin

print('Введите натуральное число ');

readln(n);

for i:=1 to n do

println('HELLO');

end.

Программа решения задачи на языке Python

n = int(input('Введите натуральное число: ')) for k in range(n): print('HELLO')

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

Задача. Известна цена товара в рублях и курс доллара. Рассчитайте цену товара в долларах

Приведем решение задачи на языках Паскаль и Python.

Как будем решать задачу

Введем цену в рублях (переменная cr) и курс доллара (переменная k).

Рассчитаем цену в долларах, разделив цену в рублях на курс доллара.

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

Var cr:integer;k,cd:real;

begin

writeln('Введите цену в рублях и курс доллара');

readln(cr,k);

cd:=cr/k;

writeln('цена товара в долларах = ',cd);

end.

Программа решения задачи на языке Python

cr = int(input('Введите цену в рублях ')) k = int(input('Введите курс доллара ')) cd = cr / k print('Цена товара в долларах ',cd)

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

Задача. Рассчитать площадь и периметр прямоугольника.

Приведем решение задачи на языках Паскаль и Python.

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

Исходные данные: a, b - целые числа (тип integer), длины сторон прямоугольника

Выходные данные: s, p - целые числа (тип integer), площадь прямоугольника, периметр прямоугольника.

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

Var a,b,s,p:integer;

begin

readln(a,b);

s:=a*b;

p:=2*(a+b);

println('площадь = ',s);

println('периметр = ',p);

end.

Программа решения задачи на языке Python

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

s = a * b

p = 2 * (a + b)

print('Площадь: ',s)

print('Периметр: ',p)

Как найти расстояние между двумя точками (язык Паскаль)

Читать

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

Читать

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

Читать