Простые задачи pascal abc

Задачи в сборнике классифицированы по основным разделам: линейные алгоритмы, разветвляющиеся алгоритмы, циклические алгоритмы, обработка массивов, обработка строк и создание графических изображений. После каждого раздела предлагаются задачи для самостоятельного решения. Внутри каждого раздела задачи по мере возможности расположены по возрастанию степени трудности.

writeln (‘ Введите a’); readln (a);

writeln (‘ Введите b’); readln (b);

if b=1 then writeln (a)

Из одного порта в другой необходимо перевезти 15 различных грузов. Грузоподъемность судна, на котором будет проходить перевозка, 50 тонн. Грузы пронумерованы, и информация о массах грузов хранится в массиве М(15). Определить, сколько рейсов необходимо сделать судну, если грузы неделимы и могут перевозиться только подряд в порядке их нумерации. (Предполагается, что масса отдельного груза не превышает 50 тонн).

mas=array[1..15] of integer;

for i:=1 to 15 do

writeln (‘ Введите m’,'[‘,i,’]’);

writeln (‘ Потребовалось , k,’ рейсов ‘);

Коммерсант, имея стартовый капитал k рублей, занялся торговлей, которая ежемесячно увеличивает капитал на p % . Через сколько лет он накопит сумму s , достаточную для покупки собственного магазина?

writeln (‘Введите стартовый капитал’);

writeln (‘Введите % увеличения капитала’);

writeln (‘Введите сумму, необходимую для покупки магазина’);

writeln (‘Количество лет -‘, int ( n /12));

Число Цукермана – натуральное число, которое делится на произведение своих цифр, например: 175 делится на 1·7·5=35. Составить программу, которая выводит на экран все трехзначные числа Цукермана.

var i,a,b,c: integer;

for i := 111 to 999 do

b := (i div 10) mod 10;

if (b <> 0) and (c <> 0) and (i mod (a * b * c) = 0) then writeln (i);

На конференцию приехало N человек. Для их перевоза выделили автомобили вместимостью К и М человек (без водителя). К гостинице автомобили подаются в таком порядке: сначала вместимостью К человек, потом – М человек и так далее. В автомобиле можно перевозить не более максимально допустимого количества пассажиров. Определить, сколько необходимо автомобилей для перевозки всех делегатов конференции.

writeln (‘Введите количество участников’);

writeln (‘Введите вместимость первого автомобиля’);

writeln (‘Введите вместимость второго автомобиля’);

if x mod 2<>0 then N:=N-K else N:=N-M;

Имеется четыре коробки спичек и в каждой из них по 15 спичек. Номер коробки, из которой берется очередная спичка, выбирается случайно. Сколько спичек будет сожжено, прежде чем одна из коробок опустеет? Составить программу .

A: array [1..4] of integer;

writeln (‘В коробке’, n , ‘закончились спички’);

writeln (‘Израсходовано спичек’, m );

Сформировать квадратную матрицу следующего вида.

A: array [1..5, 1..5] of byte;

Дано число типа byte . Проверить, является ли палиндромом его двоичное представление с учетом того, что сохранены старшие нули. Пример таких чисел: 102 (т. к. 102 = 0110 0110 2 , а это палиндром), 129 (129 = 1000 0001 2 ) и т. д.

a := 8 * a + 4 * b + 2 * c + d;

Даны два натуральных числа. Найти их наименьшее общее кратное.

Примечание: наименьшим общим кратным двух чисел m и n называется наименьшее натуральное число, которое делится на m и n . Обозначение: НОК( m , n )

while m <> n do begin

if m > n then begin

writeln(prod div m)

Дана последовательность символов длины n ( n >= 1 ). Проверить баланс круглых скобок в этом выражении. Например, при вводе выражения (())() программа должна сообщить о правильности расстановки скобок, а при вводе выражения ((()) – о неправильности.

Читайте также  Сетевой фильтр куб отзывы

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

for i := 1 to n do begin

if c = ‘(‘ then inc(count);

if c = ‘)’ then dec(count);

if count = -1 then break

writeln ( count = 0)

Сколько существует упорядоченных пар натуральных чисел а и b , для которых известны их наибольший общий делитель d и их наименьшее общее кратное m ?

a, b, i, j, d, m:integer;

function nod(a, b:integer):integer;

if a=b then nod:=a

if a>b then nod:=nod(a-b, b) else nod:=nod(a, b-a)

writeln (‘ Введите НОД двух чисел d’);

writeln (‘ Введите НО K двух чисел m’);

for i:=1 to 100 do

for j:=1 to 100 do

if ((nod(a, b)=d) and ((a*b div nod(a, b))=m)) then writeln (i, j);

Правительство гарантирует, что инфляция в новом году составит р % в месяц. Какого роста цен за год можно ожидать? Составить программу решения задачи.

Сложные проценты вычисляются по формуле .

writeln (‘Введите процент месячной инфляции’);

Факультету выделен стипендиальный фонд в размере f рублей в месяц. Результаты сессии таковы: «отличников», «хорошистов», «троечников». Повышенная стипендия (для отличников) составляет рублей, обычная — рублей; задолжники стипендии лишаются. Составить программу, определяющую сколько студентов каждой категории могут получать стипендию и каков будет остаток фонда на материальную помощь малоимущим студентам?

writeln (‘ Введите размер фонда ’);

writeln (‘Введите количество отличников, хорошистов и троечников’);

readln ( n 1, n 2, n 3);

writeln (‘Введите размер стипендий’);

if f>s1*n1 then k1:=n1 else k1:=f div s1;

if f>s2*n2 then k2:=n2 else k2:=f div s2;

if f>s2*n3 then k3:=n3 else k3:=f div s2;

writeln (‘Количество отличников, получивших стипендию=’, k 1);

if k 2>0 then writeln (‘Количество хорошистов, получивших стипендию= ‘, k 2);

if k 3>0 then writeln (‘Количество троечников, получивших стипендию =’, k 3);

writeln (‘Фонд материальной помощи=’, f );

N коробок стоят по кругу. В i -ой коробке j змей. Каждую минуту змеи переползают в соседнюю коробку (из i -ой в i +1 -ую), а из N -ой – в первую. Составить программу, определяющую количество змей в каждой коробке через М минут.

Primary tabs

Forums:

Задачи к уроку #1

  1. Напишите программу, выводит на экран три строки "Мир", "Труд" и "Май" (кавычки не нужны). Причём сделайте чтобы выводилось сначала так:

Подсказка: помните, что печатая строковые литералы, вы можете печатать не только любые буквы, но и любое количество пробелов, не только между словами, но и в конце или в начале фраз.

  • Напишите программу с тремя переменными целого типа, первым двум присвойте значения, а третьей переменной присвойте их сумму. Выведете значение третей переменной на экран.
  • Напишите программу, которая просит пользователя ввести два числа (сначала одно, потом второе), а затем выведете на экран сумму этих двух чисел.
  • Напишите программу, которая просит пользователя вводить числа до тех пор, пока не встретится число больше 12-ти, когда оно встретится напечатайте (выведете в консоль) сообщение об этом и завершите выполнение программы.
  • Задачи к уроку #2 (типы данных)

    1. Напишите программу, в которой используются две переменные логического типа (boolean), присвойте им значения и выведете для каждой переменной на экран строку "истина", если переменная имеет значение true и "ложь", если переменная имеет значение false.
    2. Переделайте предыдущую задачу для 3-х переменных, литералы "истина" и "ложь" запишите в переменные, и используйте эти две строковые переменные для уведомления пользователя об истинности/ложности каждой из трёх логических переменных (предварительно присвойте им логические значения).
    3. Напишите программу, где двум строковым переменным присваиваются значения, третей же строковой переменных присвойте объединение (конкатенацию) двух предыдущих строк. Затем напечатайте значение третьей строковой переменной.
    4. Напишите программу, сравнивающую вещественное число с целым (сами присвойте им значения), записывающую логический результат сравнения в логическую (boolean) переменную и использующую эту переменную для вывода с помощью условного оператора if фраз "выражения истинно", "выражение ложно". Обе фразы выводите на экран с помощью переменных строкового типа (string).
    Читайте также  Программа для скачивания инстаграма на компьютер

    Задачи к уроку #3 (ввод/вывод данных)

    1. Напишите программу которая просит пользователя ввести два символа (сначала один, потом второй). Выведите полученные значения на экран с комментариями
    2. Напишите программу которая просит пользователя ввести две строки, затем проводит их конкатенацию и выводит на экран результат конкатенации с комментарием.
    3. Напишите программу, где пользователю предлагается ввести строку, считайте первые три символа в переменные символьного типа (char), первый и третий символы выведите на экран.
    4. Пусть пользователь вводит строку:

    (или любую другую, но достаточно длинную)

      считайте из неё 5-й символ, используя возможность read() записывать значений во многие переменные сразу (если эти значения есть в потоке ввода), например:

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

  • Также считайте 5-ый символ (и выведите его на экран), но используя в read() только одну переменную.
  • Задачи к уроку #4 (условный оператор if)

    1. Создайте программу с двумя переменными целого типа, присвойте им значения, если первая переменная больше второй, то увеличьте её значение на 3, иначе увеличьте значение второй переменной на 8. В конце программы выведите значения обоих чисел на экран.

    Подсказка: напоминаем, что в Pascal возможны выражения вида:

  • Напишите программу, которая считывает из консоли (от пользователя) два числа. Если 1-ое больше 2-ого, то второму присвойте значение 1, иначе 1-ому присвойте значение 5, а второму 7.
    В конце программы выведите значения обоих чисел на экран.
  • Пользователь вводит целое число. Сообщите в консоли о его (числа) четности/нечётности.
  • Подсказка: для проверки четности можно использовать операцию получения остатка mod.

  • Пусть пользователь указал 3 целых числа, напишите программу которая:
    • Выведет на экран максимальное из них.
    • Выведет на экран минимальное из них.
    • Задачи к уроку #5 (циклы)

      1. Выведете на экран все числа от 1 до 100 с помощью цикла (можно все три варианта в одной программе):
        • for
        • while
        • repeat
        • Модифицируйте предыдущую задачу так, чтобы на экран выводились только нечетные числа.
        • Пользователь вводит целое положительное число, если оно не соответствует критериям (то есть не является целым и положительным), выведете сообщение об ошибке, в противном случае выведете на экран все числа от 1 до введённого пользователем.
        • Модифицируйте предыдущую задачу так, чтобы в случае, если число удовлетворяет требованиям (целое, положительное), то на экран выводились четные числа.
        • Выведете на экран числа от 1 до 5 два раза с помощью вложенных циклов. Так чтобы в консоли было:
        • M раз выведете на экран числа от 1 до N с помощью вложенных циклов. Так чтобы в консоли было:
          $
          left.
          egin
          1 & . & N \
          1 & . & N \
          end

          ight> ext
          $
        • Модифицируйте предыдущую задачу так, чтобы в каждой чётной (той, у которой номер чётный) строке выводилось N символов, а в каждой нечетной N/2 символов (сделайте проверку того, что $N/2$ больше нуля)
        • Пользователь вводит числа до тех пор пока им не будет передан ноль. В ответ на каждое число программа должна сообщать чётное оно или нет.
        • Пользователь вводит четное целое число (если нечетное сообщите об ошибке). Делите это число в цикле на $2$ до тех пор пока оно делится, выводя каждый промежуточный результат, например для $12$ в консоли получим:
        Читайте также  Посудомоечная машина бош sd4p1b

        А для 8:

        Пользователь два целых числа $M$ и $N$ целое число, если $M$ четное, делайте то же, что и в предыдущей задачи, а если нечётное, то умножайте $M$ в цикле на $3$ до тех пор пока результат не станет больше $N$ (и выводите ), например для:

      2. С помощью вложенных циклов выведите на экран таблицу умножения числе от 1 до 9, начнётся она как-то так:
      3. С помощью вложенных циклов выведите на экран таблицу деления чисел от 1 до 9.
      4. Пользователь вводит целое положительное число$N$, если оно не соответствует критериям (то есть не является целым и положительным), выведете сообщение об ошибке, в противном случае выведите на экран все числа последовательности, не большие $N$, сформированной следующим образом:
      5. — то есть всё начинается с восьмерки, затем число увеличивается на 2, затем выводит тройка и ещё пара увеличенных на 2 чисел и т.д.

        Модифицируйте решение предыдущей задачи. так чтобы пользователь вводил второе число $M$, которое отвечало бы за длину возрастающего фрагмента, например для $M=4$:
        $ underbrace<8 ;10 ;12 ;14>_< ext<четыре числа>> ;3 underbrace<;16 ;18 ;20 ;22>_< ext<четыре числа>> ;3 ; . ;3 ;. ; ext <и т.д.>$

        Заметьте. что в предыдущей задаче $M$ было зафиксировано $=2$:
        $ underbrace<8 ;10>_< ext<два числа>> ;3 underbrace<;14 ;16>_< ext<два числа>> ;3 ; . ;3 ;. ; ext <и т.д.>$

      6. Пользователь передает целое положительное число $N$, выведете на экран последовательность от $1$ до $N$ "ёлочкой", например для $N = 17$:
      7. Пользователь передает целые положительные число $N$ и $M$, выведете на экран последовательность от $1$ до $N$, так чтобы ширина "ёлочки" увеличивалась до $M$ чисел, то уменьшалась до $1$. Например, для $M = 3$ и $N = 25$ получим:
        $
        1; \
        2; 3; \
        4; 5; 6;;;;;;;;; ext <—максимум три числа>\
        7; 5; \
        9; \
        10; 17; \
        18; 19; 20;;;;;;; ext <—снова три числа>\
        21; 22; \
        23; \
        24; 25;.
        $
      8. Пользователь передает целые положительные число $N$, выведете на экран последовательность от $1$ до $N$, так чтобы ширина "ёлочки" росла волнами. Например, для $M = 49$ получим:
        $
        1; \
        2; 3; ;;;;;;;; ext <—сначала до двух>\
        4; \
        5; 6; \
        7; 8; 9; ;;;;;;;; ext <—потом до трёх>\
        10; 11; \
        12; ;;;;;;;; ext <—возвращаемся к одному>\
        13; 14; \
        15; 16; 17; \
        18; 19; 20; 21; ;;;;;;;; ext <—тут уже четыре>\
        22; 23; 24; \
        25; 26; ;;;;;;;; ext <—снова убывает >\
        27; \
        28; 29; \
        30; 31; 32; \
        33; 34; 35; 36; \
        37; 38; 39; 40; 41; \
        42; 43; 44; 45; \
        46; 47; 48; \
        49;
        $
      9. Ссылка на основную публикацию
        Adblock
        detector