20.11.2023

Срезы в PascalABC.NET (примеры использования в задачах)

Срез - это набор элементов списка, массива или строки.

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

begin

  var a:=Arr(10, 11, 12, 13, 14, 15, 16, 17, 18);

  a.Println(); // вывод массива // [10, 11, 12, 13, 14, 15, 16, 17, 18]

  a[1:3].Println(); // срез по индексам [1, 3) с шагом 1 // [11, 12]

  a[2:8:3].println(); // срез по индексам [2, 8) с шагом 3 // [12, 15]

  a[7:2:-1].Println(); // срез по индексам [7, 2) с шагом -1 // [17, 16, 15, 14, 13]

  a[::-1].Println(); // реверс массива

 end.

 Задача 1. В массиве удалить каждый второй элемент.

  Пусть имеется массив [12, 13, 14, 15, 16]

  Результат [12, 14, 16]

begin

   var a:=Arr(12, 13, 14, 15, 16);

   a:=a[::2];

   a.Println();

end.

Задача 2. В массиве найти минимальный элемент среди элементов, у которых индексы кратны 3.

 Пусть имеется массив [100, 12, 14, 23, 45, 200, 27, 21]

 То есть среди элементов 100, 23, 27 найти минимальный.

begin

  var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);

  var m:=a[0::3].Min;

  println(m);

end.

Задача 3. В массиве удалить элемент с индексом k (k меньше количества элементов массива).

begin

  var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);

  var k:=random(a.Length);//k зададим случайно

  if k < a.Length-1 then a:=a[:k]+a[k+1:]

                     else a:=a[:a.Length-1];

  a.Println;

  println('удалили элемент с индексом ',k);

end.

Задача 4. В массив вставить элемент на место с индексом k (k меньше количества элементов массива).

begin

var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);

  var k:=random(a.Length);//зададим случайно

  setlength(a, a.Length);

  var d:=Random(100); //число зададим случайно

  if k < a.Length then a:=a[:k] + Arr(d) + a[k:]

                  else a:=a[:a.Length-1] + Arr(d);

  a.Println;

  println('вставили число ',d,' на место с индексом ',k);

end.


Динамические массивы в Паскале

Читать

Найти число пар соседних элементов массива, оканчивающихся нулем. Язык Паскаль.

Читать

Найти максимум/минимум в массиве. Программа на языке Паскаль.

Читать

Массивы в языке Паскаль. Решение задач. 8 класс (сумма, произведение, среднее арифметическое, минимум/максимум с условием)

Читать

Язык Паскаль. Найти количество различных чисел в массиве из N элементов (2 способа решения)

Читать

15.11.2023

Решаем уравнение с помощью программы на языке Паскаль и Python

 Задача. Имеется уравнение вида ax + b = 0. По введенным коэффициентам a и b найти корень уравнения (значение x).

Необходимо рассмотреть несколько случаев:

если а ≠ 0 — уравнение имеет единственный корень: х = -b / а;

если а = 0 — уравнение корней не имеет;

если а и b равны нулю, то корнем уравнения является любое число. 

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

if a<>0 then println('корень уравнения: ',-b/a)

          else

              if b=0 then println('любое число')

                     else println('корней нет');

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

var a, b, x: real;

begin

  print('Введите коэффициенты a и b:');

  raedln(a,b);

  if a<>0 then println('корень уравнения: ',-b/a)

          else

              if b=0 then println('любое число')

                     else println('корней нет');

end.

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

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

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

a, b = map(float, input('Введите коэффициенты a и b ').split())

if a!=0:

    print('корень уравнения: ',-b/a)

elif b == 0:

    print('любое число')

else:

    print('корней нет')


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

Читать

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

Читать

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

Читать

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

Читать

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

Читать

30.09.2023

Как ввести с клавиатуры в питоне несколько чисел. Метод split и функция map

Задача. Участники парусной регаты стартовали одновременно. На финише фиксировалось время прохождения маршрута каждой яхтой (в часах и минутах). Определите время победителя регаты (в часах и минутах). Известно, что соревнования проходили в течение 12 часов.

Программа получает на вход количество яхт, принимавших участие в регате N (1<=N<=50), затем для каждой яхты вводится два числа: часы и минуты, затраченные на прохождение маршрута.

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

4

2 55

3 40

2 35

3 10

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

2 35

Исходные данные: N - количество яхт

h, m - количество часов и минут

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

hw, mw - результат победителя

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

  1. Введем с клавиатуры число N.
  2. В цикле от 0 до N-1 введем пары чисел, переведем введенное время в минуты, определим минимум в минутах.
  3. Выполним перевод найденного минимального времени в часы и минуты.

Как ввести с клавиатуры несколько чисел? В нашей задаче в каждой строке вводится пара чисел.

Мы знаем, что input вводит строку. Мы также понимаем, что пара чисел разделена в строке одним пробелом. Необходимо разделить строку на две по пробелу. Для этого будем использовать метод split.

input().split()

Затем функцией map применим int к полученным строкам и сохраним в переменных h и m.

h, m = map(int, input().split())

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

n = int(input())

tmin = 12*60

for k in range(n):

    h, m = map(int, input().split())

    t = h*60+m

    if t < tmin:

        tmin = t

hw = tmin // 60

mw = tmin % 60

print(hw, mw)

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





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)




19.07.2023

Дано три целых числа. Определить, сколько из них отрицательных? (Паскаль, Python)

Задача. Дано три целых числа. Определить, сколько из них отрицательных?

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

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

  • введем с клавиатуры три целых числа (a, b, c)
  • обнулим счетчик отрицательных чисел (k)
  • над каждым числом выполним проверку: если число отрицательно (строго меньше 0), то счетчик k увеличим на 1 (будем использовать ветвление и соответственно условный оператор в краткой форме)
    if a<0 then k:=k+1;
  • выведем ответ на экран

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

var a,b,c,k:integer;

begin

  println('Введите три целых числа:');

  readln(a,b,c);

  k:=0;

  if a<0 then k:=k+1;

  if b<0 then k:=k+1;

  if c<0 then k:=k+1;

  println('Количество отрицательных чисел:',k);

end.

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

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

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

a,b,c = map(int, input('Введите три целых числа: ').split())

k = 0

if a<0: k+=1

if b<0: k+=1

if c<0: k+=1

print('Количество отрицательных чисел:',k)

Заметим, что по сути нужно повторить три одинаковых действия: ввести число и выполнить проверку, поэтому можно использовать следующий код (это позволит приблизиться к теме Циклы)

k = 0

a = int(input('Введите целое число: '))

if a<0: k+=1

a = int(input('Введите целое число: '))

if a<0: k+=1

a = int(input('Введите целое число: '))

if a<0: k+=1

print('Количество отрицательных чисел:',k)

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


Дано натуральное число N. Есть ли в нем четная цифра

Читать

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

Читать

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

Читать