Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 2. Разветвляющиеся программы
Примеры решаемых задач Пример 1. Составить программу, которая определит большее из двух введенных чисел. Программа: Program maximum; Uses Crt; Var A, B: Integer; Begin Clrscr; Write (‘Введите два числа ’); Readln (A, B); If A>B Then Writeln (‘Большее число ’, A) Else If B>A Then Writeln (‘Большее число ’, B) Else Writeln (‘Числа равны’); Readln End. Пример 2. Составить программу, которая вводит число, обозначающее количество лет, и выводит для этого числа наименование «год», «года» или «лет». Например, «14 лет», «183 года», «31 год». Составим модель данной задачи. Исходным данным является целое число A. Результат: наименование. Наименование зависит от последней цифры введенного числа: 1 - «год»; 2,3,4 – «года», 0,5,6,7,8,9 – «лет». Исключением являются числа, две последних цифры которых составляют число от 11 до 14 – в этом случае требуемым наименованием будет «лет» («12 лет»). Алгоритм решения: ввод числа А; вычисление числа В из двух последних цифр числа А; если В лежит в интервале от 11 до 14, то писать наименование «лет» иначе выделить последнюю цифру числа А (обозначим С); если С=1, то вывести наименование «год»; если С=2 или С=3 или С=4, то вывести наименование «года»; если С=0 или С в интервале от 5 до 9, то вывести наименование «лет». Программа: Program Years; Uses Crt; Var A, B, C: Integer; Begin Clrscr; Write (‘Введите число ’); Readln (A); B:= A mod 100; If (B>=11) And (B<=14) Then Writeln (A, ‘ лет’) Else Begin C:= A mod 10; Case C Of 1: Writeln (A, ‘ год’); 2, 3, 4: Writeln (A, ‘ года’); 0, 5..9: Writeln (A, ‘ лет’) End End; Readln End. Тема 3. Циклические программы Примеры решаемых задач Пример 1. Составить программу, которая выведет на экран числа от 1 до N. Пояснение: составим три программы, т.е. решим данную задачу с использованием трех различных циклических конструкций.
Пример 2. Составить программу, которая будет запрашивать пароль до тех пор, пока не будет введен верный ответ. Программа: Program Password; Uses Crt; Const Pass=’паскаль’; { верный ответ }
Var S: String; Begin Clrscr; Repeat Write (‘Пароль ’); Readln (S); { вводим пароль } If S <> Pass Then Writeln(‘Неверно!’) Until S=Pass; { цикл закончен, если ввели верный пароль } Writeln (‘Верно!’); Readln End. Пример 3. Составить программу, которая выведет на экран все положительные члены арифметической прогрессии с разностью D= -1.5 и первым членом A. Программа: Program Progress; Uses Crt; Const D= -1.5; { Константа – разность прогрессии } Var A: Real; { В А будут храниться по очереди все члены прогрессии } Begin Clrscr; Write (‘Введите первый член прогрессии ’); Readln (A); While A > 0 Do {пока очередной член прогрессии положителен} Begin Writeln(A); { печатаем число – член прогрессии } A:= A + D { вычисляем следующий член прогрессии и записываем его в ту же переменную А } End; Readln End. Пример 4. Составить программу, которая вычислит общее количество «5», «4», «3» и «2», полученных студентами группы за экзамен по программированию, а также средний балл за экзамен, если известны количество студентов в группе и отметки каждого из них. Программа: Program Students; Uses Crt; Var N, K, K5, K4, K3, K2, S, M: Integer; { N – количество студентов в группе, K – счетчик всех студентов, K5 – счетчик «5», K4 – счетчик «4», K3 – счетчик «3», K2 – счетчик «2», S – сумма всех отметок, M – отметка очередного студента } Sb: Real; { Sb – средний балл за экзамен } Begin Clrscr; Write (‘Сколько студентов в группе? ’); Readln (N); For K:= 1 To N Do { перебираем всех студентов } Begin Writeln (‘введите отметку ’, K, ‘студента ’); Readln (M); {В переменную М вводим все отметки по очереди} S:= S+M; { В переменной S накапливается сумма всех отметок} Case M Of { Увеличиваем нужный счетчик } 5: K5:= K5 + 1; 4: K4:= K4 + 1; 3: K3:= K3 + 1; 2: K2:= K2 + 1 End End; Sb:= S / N; { Вычисляем средний балл } Writeln (‘Количество «5» ’, К5); Writeln (‘Количество «4» ’, К4); Writeln (‘Количество «3» ’, К3); Writeln (‘Количество «2» ’, К2); Writeln (‘Средний балл группы за экзамен ’, Sb:5:2); Readln End. Пример 5. Составить программу, которая определит наибольшее из N вводимых чисел. Алгоритм поиска экстремума (максимума или минимума) числовой последовательности: сначала вводится первое число, оно полагается максимальным (или минимальным). После этого вводятся все остальные числа (от 2-го до N-го), каждое из них сравнивается с максимумом (минимумом), и если оно больше (меньше), то максимуму (минимуму) присваивается введенное число.
Программа: Program Maximum; Uses Crt; Var Max, X: Real; K, N: Integer; Begin Clrscr; Write (‘Сколько чисел? ’); Readln (N); Write (‘Введите первое число ’); Readln (Max); For K:= 2 To N Do Begin Writeln (‘Введите ’, K, ‘ число ’); Readln (X); If X > Max Then Max:= X End; Writeln (‘Наибольшее из введенных чисел ’, Max); Readln End. Пример 6. Составить программу, которая рисует в алфавитно-цифровом режиме звездное небо из N разноцветных звезд, расположенных на экране случайным образом. Указание: Для решения данной задачи необходимо использовать специальную функцию – датчик случайных чисел. Она вызывается следующим образом: Random (N). Датчик случайных чисел возвращает случайное целое число из интервала от 0 до N-1. Таким образом, после выполнения команды A:= Random (10); значением переменной А будет какое-то число (неизвестное заранее) из интервала от 0 до 9. Для того, чтобы при каждом запуске программы генерировалась новая последовательность случайных чисел, необходимо перед вызовом функции Random выполнить инициализацию датчика случайных чисел. Она выполняется командой Randomize (т.е. вызывается процедура с таким именем). Кроме того, для решения данной задачи может потребоваться использование следующих процедур из модуля CRT: 1. ClrScr; - очистка экрана; 2. TextColor(c); - цвет выводимого текста, 0 £ с £ 15. Параметр С – это номер цвета (см. Приложение 1). 3. TextBackGround(c); - цвет фона, 0 £ с £ 7. Параметр С – это номер цвета (см. Приложение 1). 4. GotoXY(x,y); - позиционирование курсора в точку с координатами (x,y): 1 £ x £ 80, 1 £ y £ 25 (или 1 £ y £ 40 в зависимости от установленного максимального количества строк в алфавитно-цифровом режиме). 5. Delay(n); - приостановка (задержка) работы программы на n миллисекунд. Программа: Program Sky; Uses Crt; Var n, i, x, y, c: Integer; Begin ClrScr; Write (‘Сколько звезд будет на небе? ’); Readln (n); ClrScr; Randomize; For i:= 1 To n Do Begin x:= random (80) + 1; y:= random (24) + 1; c:= random (15) + 1; TextColor (c); Gotoxy (x, y); Write (‘ * ’) end; Readln End.
|
||||||||||||
Последнее изменение этой страницы: 2021-04-05; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.12.175 (0.017 с.) |