Показаны сообщения с ярлыком Линейный алгоритм. Показать все сообщения
Показаны сообщения с ярлыком Линейный алгоритм. Показать все сообщения

24.09.2023

Как ввести с клавиатуры целое число. Функция input. Python

Для ввода данных с клавиатуры будем использовать функцию input.

n = input()

В результате выполнения данной программы мы увидим приглашение к вводу данных, а именно строки.

Для того, чтобы увидеть текстовый комментарий, сделаем так:

n = input('Введи строку ')

Можно вывести строку на экран:

print('Вы ввели строку ',n)

Убедимся, что это строка:

n = n + ', а не число' #выполним сложение строк

print('Вы ввели строку ',n)



Но, как ввести число в Python?

Необходимо использовать функцию int для преобразования введенной строки к числу.

n = int(input('Введи число '))

Можно вывести число на экран:

print('Вы ввели число ',n)

ввод целого числа. Python

Убедимся, что это число:

n = n + 100  #увеличим число на 100

print('Введенное число увеличили на 100  и получилось: ',n)




24.05.2023

Дано натуральное число N, есть ли в нем четная цифра. Язык Паскаль. PascalABC.NET

 В данной статье рассмотрим способы решения задачи о цифрах заданного натурального числа.

Задача. С клавиатуры вводится натуральное число N. Определить, есть ли в нем четные цифры?

Четные цифры это: 0, 2, 4, 6, 8

1 способ

f:=false;

while N<>0 do

 begin

  d:=N mod 10;

  if d in [0,2,4,6,8] then f:=true;

  N:=N div 10;

 end;

 if f then println('Да, четные цифры есть в числе') else println('Нет, четных цифр нет в числе');

За значение флага f приняли ЛОЖЬ - четных цифр нет в числе. Выделили цифры числа оператором цикла while. Если цифра принадлежит множеству четных цифр, то значение флага изменяем на ИСТИНУ.

За циклом осуществляется проверка флага. Если флаг принял значение ИСТИНА, то в числе есть четные цифры, в противном случае нет.

Комментарии: 

  • логическое значение ЛОЖЬ - false
  • логическое значение ИСТИНА - true
  • для хранения логических значений используются переменные типа boolean
  • оператор вхождения элемента в множество - in

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

var N,d:integer;

    f:boolean;

begin

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

  readln(N);

  f:=false;

  while N<>0 do

  begin

    d:=N mod 10;

    if d in [0,2,4,6,8] then f:=true;

    N:=N div 10;

  end;

  if f then println('Да, четные цифры есть в числе') else println('Нет, четных цифр нет в числе');

end.

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


2 способ

Используем модуль School, функцию digits и методы динамических массивов.

С помощью функции digits получим список цифр числа, преобразуем список к массиву, найдем в полученном массиве четные цифры, преобразуем полученную последовательность в массив и вычислим его длину. Если длина полученного массива четных цифр не равна 0, то ответ Да, иначе Нет.

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

uses school;

var N,p:integer;

begin

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

  readln(N);

  p:=digits(N).ToArray.Where(k -> k in [0,2,4,6,8]).ToArray.Length;

  if p<>0 then println('Да, четные цифры есть в числе') else println('Нет, четных цифр нет в числе');

end.

Комментарии:

  • Условие k in [0,2,4,6,8] можно изменить на обычную проверку: остаток от деления на 2 равен 0? k mod 2 = 0
  • Данная программа является линейной и не использует цикл для выделения цифр числа.

3 способ

Преобразуем число в строку. Выполним проверку вхождения символов '0', '2', '4', '6', '8' в полученную строку.

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

n = int(input())

n = str(n) #функция str преобразует числовое значение в строковое

f = ('0' in n) or ('2' in n) or ('4' in n) or ('6' in n) or ('8' in n)

if f:

    print('yes')

else:

    print('no')


15.03.2023

Найти сумму цифр трехзначного числа N. Программа на языке Паскаль. PascalABC.NET

 Задача. С клавиатуры вводится натуральное трехзначное число N. Найти сумму его цифр.

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

Разберем способ с использованием операций целочисленного деления div и mod.

Вспомним состав числа. В трехзначном числе первая цифра показывает количество сотен, вторая - количество десятков, третья - количество единиц.

Например, N = 297 = 200 + 90 + 7 (2 сотни, 9 десятков и 7 единиц)

Для вычисления количества сотен необходимо число N разделить на 100 и взять целую часть, это будет 2. Чтобы вычислить количество десятков, нужно число N разделить на 100 и взять целый остаток, это будет 97,  а затем полученное значение разделить на 10 и взять целую часть, это будет 9. Чтобы вычислить последнюю цифру (количество единиц), нужно число N разделить на 10 и взять целый остаток, это будет 7 (либо полученное число на предыдущем шаге 97 разделить на 10 и взять целый остаток).

Цифры трехзначного числа

Введем обозначения цифр. Пусть a - это сотни, b - десятки, c - единицы.

Операция деления нацело это div, операция деления с остатком это mod.

Тогда выражения для вычисления цифр числа будут такими:

a:=N div 100;

b:=N mod 100 div 10;

c:=N mod 10;

Это не единственный путь решения данной задачи с использованием операций div и mod, предложите в комментариях свой способ.

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

s:=a+b+c;

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

var N,a,b,c,s:integer;

begin

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

  readln(N);

  a:=N div 100;

  b:=N mod 100 div 10;

  c:=N mod 10;

  s:=a+b+c;

  println('Сумма цифр числа:',s);

end.

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

Найти сумму цифр трехзначного числа N


09.03.2023

Язык Паскаль. Найти площадь круга. PascalABC.NET

 Задача. С клавиатуры вводится радиус круга. Найти площадь круга.

Площадь круга рассчитывается по формуле: S = πr2, где r - это радиус круга.

Исходные данные: r - радиус круга

Результативные данные: S - площадь круга

Число π будем использовать в виде константы Pi.

Чтобы возвести число r в квадрат, будем использовать операцию возведения в степень, это: **

Например, 23 будет записываться так: 2**3. Результатом возведения в степень будет вещественное число.

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

var r:integer; s:real;

begin

  println('Введите радиус круга');

  readln(r);

  s:=Pi*r**2;

 println('Площадь круга',s);

 writeln(s:10:3);//вывод в формате s:10:3, 10 позиций на все число и 3 знака после запятой

end.

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

Площадь круга

Это еще один пример линейной программы.




21.02.2022

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

Задача. Необходимо вычислить расстояние между двумя точками, заданными своими целочисленными координатами.

Формула расстояния между двумя точками:

формула расстояния между двумя точками

Исходные данные:

x1, y1 – координаты первой точки (тип integer);

x2, y2 – координаты второй точки (тип integer).

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

d – расстояние между двумя точками (тип real).

Необходимые функции:

sqr() – возведение в квадрат

sqrt() - извлечение квадратного корня (выдает значение типа

Опишем переменные в блоке Var

13.02.2022

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

С помощью языков программирования описываются алгоритмы. Алгоритмы по своей структуре делят на следующие типы:

  • линейный
  • разветвляющийся
  • циклический

Линейные программы - описания на языке программирования линейных алгоритмов.

В линейном алгоритме действия выполняются последовательно, шаг за шагом, в таком алгоритме отсутствуют условные переходы и повторения. В линейной программе на языке программирования присутствуют только простые операторы, такие как, операторы ввода/вывода, присваивания. В линейных программах не используются операторы ветвления или цикла.

11.02.2022

Язык Паскаль. Количество упаковочной бумаги для коробки

Как упаковать коробку в бумагу

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

Задача. Есть коробка с размерами x, y, h (длина, ширина, высота в см). Каким должен быть по своему размеру лист упаковочной бумаги? Вычислить его длину и ширину.

Длина листа упаковочной бумаги рассчитывается по формуле: 2y + 2h + 4 (см)

Ширина листа упаковочной бумаги рассчитывается по формуле: x + 2h (см)

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

var x,y,h,xL,yL:integer;

begin

   println('Введите размеры коробки в см: длину, ширину, высоту');

   readln(x,y,h);

   xL:=2*y+2*h+4;

   yL:=x+2*h;

   println('Вам понадобится лист упаковочной бумаги');

   println('длиной:',xL,'см');

   println('шириной:',yL,'см');

end.

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

запуск программы

Язык Паскаль. Рассчитать количество плитки

Задача. Имеется поверхность пола длиной x и шириной y и плитка размерами x1 на y1. Какое количество плитки понадобится для укладки пола?

Размеры пола и плитки будем задавать в мм.

При укладке базовым (традиционным) способом края плитки параллельны стенам помещения.

Количество плитки рассчитывается по формуле: k = xy/(x1y1).

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

var x,y,x1,y1:integer; k:real;

begin

   writeln('Введите размеры пола в мм (длину и ширину)');

   readln(x,y);

   writeln('Введите размеры плитки в мм (длину и ширину)');

   readln(x1,y1);

   k:=x*y/(x1*y1);

   writeln('Вам понадобится ',k,' плиток');

end.

Если количество плиток не целое число, то придется купить на 1 больше.

Например, если расчет 77.7 плитки, покупаем 78.

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

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

01.02.2022

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

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

Как известно, в 1 метре 100 см, а в 1 км 1000 м, значит для вычисления метров необходимо длину в см разделить на 100, а затем полученное значение разделить на 1000.

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

Var d:integer;k,m:real;

bgin

  readln(d);

  m:=d/100;

  k:=m/1000;

  writeln('длина в метрах ',m,' длина в километрах ',k);

end.

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

d = int(input())

m = d / 100

k = m / 1000

print('длина в метрах',m,' длина в километрах',k)

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

Читать

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

Читать

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

Читать

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

Рассчитать цену товара в долларах. Программа на языке Паскаль и 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.