Задания на циклы паскаль

Задания на циклы паскаль

Найти наибольшую цифру натурального числа

С клавиатуры вводится натуральное число. Найти его наибольшую цифру.

Например, введено число 764580. Наибольшая цифра в нем 8.

Вероятность четных случайных чисел

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

Докажите, что для множества натуральных чисел верно 1+2+. +n = n(n+1)/2

Напишите программу, доказывающую или проверяющую, что для множества натуральных чисел выполняется равенство:
1+2+. +n = n(n+1)/2, где n — любое натуральное число.

Угадать случайное число

В программе генерируется случайное целое число от 0 до 100. Пользователь должен его отгадать не более чем за 10 попыток. После каждой неудачной попытки должно сообщаться больше или меньше введенное пользователем число, чем то, что загадано. Если за 10 попыток число не отгадано, то вывести загаданное число.

Вывод таблицы символов ASCII на экран

Вывести на экран коды и символы таблицы ASCII, начиная с символа под номером 32 и заканчивая 127-м включительно. Вывод выполнить в табличной форме: по десять пар "код-символ" в каждой строке.

Таблица значений функции

Вывести таблицу значений функции y = -0.23x 2 + x . Значения аргумента ( x ) задаются минимумом, максимумом и шагом. Например, если минимум задан как 1, максимум равен 3, а шаг 0.5. То надо вывести на экран изменение x от 1 до 3 с шагом 0.5 (1, 1.5, 2, 2.5, 3) и значения функции ( y ) при каждом значении x .

Сумма и произведение цифр числа

Найти сумму и произведение цифр, введенного натурального числа. Например, если введено число 325, то сумма его цифр равна 10 (3+2+5), а произведение 30 (3*2*5).

Вычислить факториал числа

Вычислить факториал введенного числа.

Сумма элементов ряда чисел

Найти сумму n элементов следующего ряда чисел:
1 -0.5 0.25 -0.125 .
Количество элементов ( n ) вводится с клавиатуры.

Посчитать четные и нечетные цифры числа

Посчитать четные и нечетные цифры введенного натурального числа. Например, если введено число 34560, то у него 3 четные цифры (4, 6 и 0) и 2 нечетные (3 и 5).

Ряд Фибоначчи

Вывести на экран столько элементов ряда Фибоначчи, сколько указал пользователь. Например, если на ввод поступило число 6, то вывод должен содержать шесть первых чисел ряда Фибоначчи: 1 2 3 5 8 13.

Вывести ряд чисел в диапазоне с шагом

Вывести на экран ряд натуральных чисел от минимума до максимума с шагом. Например, если минимум 10, максимум 35, шаг 5, то вывод должен быть таким: 10 15 20 25 30 35. Минимум, максимум и шаг указываются пользователем (считываются с клавиатуры).

Переворот числа

Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести на экран. Например, если введено число 3486, то надо вывести число 6843.

Простейший калькулятор

Написать программу, которая будет складывать, вычитать, умножать или делить два числа. Числа и знак операции вводятся пользователем. После выполнения вычисления программа не должна завершаться, а должна запрашивать новые данные для вычислений. Завершение программы должно выполняться при вводе символа ‘0’ в качестве знака операции. Если пользователь вводит неверный знак (не ‘0’, ‘+’, ‘-‘, ‘*’, ‘/’), то программа должна сообщать ему об ошибке и снова запрашивать знак операции. Также сообщать пользователю о невозможности деления на ноль, если он ввел 0 в качестве делителя.

При пользовании «Инфоуроком» вам не нужно платить за интернет!

Минкомсвязь РФ: «Инфоурок» включен в перечень социально значимых ресурсов .

Описание презентации по отдельным слайдам:

REPEAT UNTIL ; Цикл с пост условием WHILE DO begin end; Цикл с пред условием for i:= 1 to n do Цикл с параметром Циклы в Паскале

Задача №1 program example; var sum:real; n:real; BEGIN sum:=0; n:=1; while n 1000; Writeln(s); Readln End. Ответ: Подсчета суммы первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+. 1/N

Задача №3 Var I, n,x,sum: integer; Begin Write(‘Введите N=’); Readln(n); Sum:=0; For I:=1 to n do Begin Write(‘Введите число’); Readln(x); if x 5 слайд

Пример 1. Вычислить наибольший общий делитель двух натуральных чисел А и В. Воспользуемся для этого алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равны. Program NOD; Var a,b:integer; Begin Write (‘введите два натуральных числа’) Readln(a,b) While a<>b do If a>b then a:=a-b else b:=b-a; Writeln(‘НОД=’,a); End.

Читайте также:  Настройка joyetech cuboid mini

Пример 2 . Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100км. Program prim_10; Var S:real; N:integer; Begin S:=10;N:=1; While s 7 слайд

Вывести на экран ряд чисел Фибоначчи, состоящий из n элементов. Числа Фибоначчи – это элементы числовой последовательности 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих. Числа Фибоначчи program fib_01; var i, ch, ch1, ch2, n :integer; begin write(‘n=’); readln(n); ch:=0; <алгоритм поиска чисел Фибоначчи>ch1:=1; for i:=1 to n do begin ch2:=ch1; ch1:=ch; ch:=ch1+ch2; write (ch:5) <надо вывести на экран все числа Фибоначчи, поэтому оператор вывода находится внутри цикла>end; end.

Домашнее задание Дано натуральное число. Вывести на экран все натуральные числа до заданного включительно. 2. Вывести на экран кубы чисел от A до B.

№1 program FromOneToN; var i, n: word; begin readln(n); for i := 1 to n do begin write(i, ‘ ‘); end ; end. №2 var a, b: integer; begin write(‘A: ‘); readln(a); write(‘B: ‘); readln(b); if a

Бесплатный
Дистанционный конкурс "Стоп коронавирус"

  • Рожкова Ирина СергеевнаНаписать 0 06.04.2016

Номер материала: ДБ-013608

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

«Развитие эмоционального интеллекта»

Спикер: Анна Быкова (#лениваямама)

    06.04.2016 888
    06.04.2016 2199

Не нашли то что искали?

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Primary tabs

Forums:

Мы переходим к одному из самых интересных из наших уроков по Паскалю, речь здесь пойдёт о вложенных циклах, чтобы перейти этому уроку, вы должны быть уже знакомы с конструкциями циклов:

  1. for — цикл с параметром.
  2. while — цикл с предусловием.
  3. repeat/until — цикл с постусловием.

Основная идея использования вложенных циклов

Основная идея использования вложенных циклов состоит в том, что даже когда некий процесс, требует цикла — повтора действий (т.н. "внешний цикл"), то даже внутри отдельного действия можно запустить свой цикл (т.н. "внутренний" или "вложенный цикл") для решения какой-то "местной" задачи.

То есть: внутри витка внешнего цикла, можно запустить цикл внутренний, тогда на один виток внешнего цикла, внутренний цикл будет каждый раз выполнять все свои витки.

Графическое представление вложенных циклов

Работу циклов также можно сравнить с вращением связанных шестерёнок разного размера:

— внешний цикл это как бы большая шестерёнка, за один свой оборот (виток цикла), внешний цикл заставляет вращаться вложенный цикл (меньшую шестерёнку) несколько раз.

Такая иллюстрация точна в случае, если число повторов вложенного цикла не зависит от того какой именно (1-ый, n-ый или иной) виток делает внешний цикл, а так бывает не всегда. Почему выясним, рассматривая примеры ниже.

Примеры кода решений задач с вложенными циклами

Пример №1.1: Repeat/until + For: работа с пользователем до его указания на завершение программы

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

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

Читайте также:  Как узнать модель бегущей строки

В качестве конкретного пример рассмотрим решение задачи:

Пользователь вводит целые положительные числа, большие $5$. Пока он не введёт число $22$ в ответ на каждое введённое число выводите все целые числа от $1$ до этого числа, если же пользователь ввёл ноль, то объявите о завершении работы программы.

Прокомментируем это решение:

  1. В качестве внешнего цикла мы выбрали repeat/until, чтобы проверять условие уже после ввода значения пользователем.
  2. В качестве внутреннего цикла мы выбрали for — ведь каждый раз будет известно число, до которого надо выводить меньшие числа. Можно было бы использовать и любой другой цикл, но for в таких случаях использовать грамотнее и красивее.
  3. минусом выбора repeat/until внешним циклом является то, что эта программа, в случае если пользователь введёт число $22$, все равно выведет ряд чисел, а только потом завершится.

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

Пример №1.2 (продолжение): While + For: работа с пользователем до его указания на завершение программы

Это пример является продолжением предыдущего и одновременной иллюстрацией ситуации, где цикл For вложен в While:

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

  1. Сначала, ещё до цикла мы просим пользователя ввести число первый раз, если это число = 22, то цикл вообще не начнётся и программа будет завершена без вывода ряда.
  2. Если пользователь вводит число не равное 22, то цикл начнётся, так как число уже известно, то в витке цикла мы сначала выведем значения до введённого числа, а только потом в конце витка запросим очередное число.

Пример №2 — вывод таблицы умножения

Вывод всевозможных таблиц — классический пример задач, где требуются вложенные циклы.
Основная идея в подобных задачах состоит в том, что:

  1. есть какой-то главный (внешний) цикл, тело которого должно решить задачу вывода на экран очередной строки (ну и расчета значений, которые нужно выводить)
  2. но задача в вывода очередной строки в теле внешнего цикла, решается размещением в этом теле ещё одного вложенного цикла, который, например, формирует эту очередную строку из неких фрагментов, например символов или групп символов.

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

Рассмотрим решение задачи:

Вывести на экран таблицу умножения чисел от 1 до 9.

Решение (for в for):

Конечно, в качестве внешнего цикла можно было бы использовать любую другую из оставшихся двух конструкцию, например, давайте перепишем это решение используя вложение for в while:

Или даже while в repeat-until:

Задачи для самостоятельного решения

  1. Выведите на экран таблицу умножения используя только циклы вида repeat/until.
  2. Выведите на экран таблицу умножения используя только циклы вида while.
  3. Выведите на экран таблицу умножения используя один цикл while и один repeat-until .
  4. Пользователь вводит числа до тех пор пока не введёт число меньшее $1$. В ответ на каждое введённое им число выводите на экран все нечетные числа от 1 до это числа, при этом делящиеся на 5. Если же пользователь ввел число меньшее $1$, то завершите программу.
  5. Пользователь вводит первое целое число-ограничитель $m$. А затем начинает вводить целые числа по одному, пока не введёт число большее числа-ограничителя.
    Если очередное целое число больше $1$, то в ответ на каждое такое число программа должна выводить все целые числа от единицы до этого числа.

Примечание: это задача на вложенные циклы, в качестве внешнего надо использовать while, а в качестве внутреннего можно использовать или for или while.

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

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

    А для 8:

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

  • С помощью вложенных циклов выведите на экран таблицу умножения числе от 1 до 9, начнётся она как-то так:
  • С помощью вложенных циклов выведите на экран таблицу деления чисел от 1 до 9.
  • Пользователь вводит целое положительное число $N$, если оно не соответствует критериям (то есть не является положительным), выведете сообщение об ошибке, в противном случае выведите на экран все числа последовательности, не большие $N$, сформированной следующим образом:
  • — то есть всё начинается с восьмерки, затем число увеличивается на 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 <и т.д.>$

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

    ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
    Решите всеми тремя способами.

    Пользователь передает целое положительное число $N$, выведете на экран последовательность от $1$ до $N$ "ёлочкой", например для $N = 17$:

    ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
    Решите всеми тремя способами.

  • Модифицируйте предыдущий вывод "ёлочкой" так, чтобы в каждой нечетной строке выводились только четные числа, а в каждой четной только нечетные.
  • Пользователь передает целые положительные число $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;.
    $
  • Пользователь передает целые положительные число $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;
    $
  • Ссылка на основную публикацию
    Жесткий диск только для чтения как изменить
    Давайте представим ситуацию, когда вы хотите сохранить свои файлы в том виде, в котором они находятся на диске, то есть...
    Греется флешка в магнитоле
    Добрый день, друзья! Встречались ли вы когда-либо с нагревом флэшки? Вставляешь ее в usb-порт, записываешь нужные файлы, а вытаскиваешь обратно...
    Группировка вкладок в яндекс браузере
    Представляем очередной авторский обзор расширения в рамках нашей акции. Сегодня Виталий Потапов представит свой инструмент для организации хаоса открытых вкладок....
    Забыла телефон дома как сделать переадресацию
    Переадресация телефонных звонков – полезная и часто недооцениваемая услуга, которая позволяет не только принимать звонки если ваш основной телефон не...
    Adblock detector