СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

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

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Алгоритмическая конструкция ВЕТВЛЕНИЕ на PASCAL (примеры алгоритмов).

Категория: Информатика

Нажмите, чтобы узнать подробности

Составьте программу, которая рисует картинку «Звёздное небо»: n маленьких разноцветных кругов («звёзд»), радиус которых определяется случайным образом в диапазоне от 4 до 14, на тёмно – синем фоне.

Просмотр содержимого документа
«Алгоритмическая конструкция ВЕТВЛЕНИЕ на PASCAL (примеры алгоритмов).»

Алгоритмическая конструкция ВЕТВЛЕНИЕ

Коротко о главном:

  • Условный оператор if в программе используется в случаях, когда компьютеру необходимо принимать решения в зависимости от некоторого условия.

  • Полная форма условного оператора if в общем виде:

If then

else .

  • Сокращённая форма условного оператора if в общем виде:

If then .

  • Для записи простых условий используют следующие операции сравнений:

= (равно),

(больше),

= (больше либо равно),

(не равно).

  • Составное условие – это условие, построенное из простых условий с помощью следующих логических операций:

and – логическое «и»;

or – логическое «или»;

not – логическое отрицание.



Составьте программу, которая рисует картинку «Звёздное небо»: n маленьких разноцветных кругов («звёзд»), радиус которых определяется случайным образом в диапазоне от 4 до 14, на тёмно – синем фоне.

Ответ:

uses graphabc;

Var n, i, x, y: integer;

Begin

writeln ('Ведите n');

readln (n); {ввод числа звёзд}

SetWindowSize (640,480);

ClearWindow(clBlue);

for i:=1 to n do

begin

SetBrushColor (rgb(i*100,i*25,i*50)); {цвет кисти разных оттенков}

x:=random(640); y:=random(480);

Circle (x, y, random(11)+4);

end;

End.

Результат работы программы может выглядеть так:

Ведите n

80















Упражнение 5

Составьте программу, которая рисует 10 окружностей зелёного цвета разных радиусов с одним центром.

Ответ:

uses graphabc;

Var n, i, x, y: integer;

Begin

SetWindowSize (640,480);

ClearWindow;

SetBrushColor (clGreen); {зелёный цвет кисти}

for i:=10 downto 1 do {изменение параметра i от 10 до 1 с шагом 1}

Circle (320, 240, 20*i);

{рисование окружностей разного радиуса, начиная с самой большой}

End.

Результат работы программы может выглядеть так:

Упражнение 6

Составьте программу, которая определяет, являются ли два данных натуральных числа взаимно простыми, и выводит на экран соответствующее сообщение: «Да» либо «Нет». (Натуральные числа называются взаимно простыми, если их наибольший делитель равен 1).

Ответ:

Var i, a, b: integer;

Begin

writeln ('Ведите a');

readln (a); {ввод первого числа}

writeln ('Ведите b');

readln (b); {ввод второго числа}

while ab do {Проверка равенства чисел}

if ab then a:=a-b else b:=b-a;

{Всегда из большего вычитаем меньшее}

if a=1 then writeln ('Да')else writeln ('Нет');

{Поскольку после выполнения цикла a и b равны, то мы одно из них сравниваем с 1}

End.

Результат работы программы может выглядеть так:

Ведите a

5

Ведите b

4

Да

Ведите a

20

Ведите b

4

Нет

Упражнение 7

Составьте программу, которая определяет, является ли данное натуральное число простым, и выводит на экран соответствующее сообщение: «Да» либо «Нет». (Простое число делится на 1 и на само себя).

Ответ:

Var i,a, k: integer;

Begin

write ('Ведите a = '); readln (a); {ввод числа}

k:=0;

for i:=2 to (a div 2) do

if a mod i = 0 then k:=1;

{Если остаток от деления а на i равен нулю, то значит найден делитель}

if k=1 then writeln ('Нет')else writeln ('Да');

{Если найден делитель и число соответственно не простое, то выводится сообщение "Да", иначе - "Нет"}

End.

Результат работы программы может выглядеть так:

Ведите a = 20

Нет

Ведите a = 17

Да

Упражнение 8

Составьте программу, которая определяет, через сколько лет сумма в S р., положенная в банк под P% годовых с капитализацией, увеличится в 3 раза.

Ответ:

Var s0, p, i, k: integer; s: real;

Begin

writeln ('Ведите сумму вклада '); readln (s0);

{ввод первоначальной суммы вклада}

writeln ('Ведите процентную ставку '); readln (p);

{ввод процентной ставки}

s:=s0; k:=0;

while s

begin

s:=s+s*p/100; k:=k+1;

{Ежегодное увеличение суммы и счётчика }

end;

writeln('Через ', k,' лет');

End.

Результат работы программы может выглядеть так:

Ведите сумму вклада

3000000

Ведите процентную ставку

15

Через 8 лет

Упражнение 9

Составьте программу вывода на экран n первых чисел Фибоначчи. (Числа Фибоначчи – это члены числовой последовательности 1, 1, 2, 3, 5, 8, 13, …, которые вычисляются по следующему правилу: а1=1, а2=1, а321, … аn=an-1+an-2).

Ответ:

Var i, a, b, n: integer;

Begin

writeln ('Ведите n '); readln (n); {ввод n}

a:=1; b:=1;

if n mod 2 0 {Проверка чётности введённого числа n}

then

for i:=1 to n div 2+1 do

{Параметр цикла изменяется от 1 до n делённое нацело надвое плюс 1, например: для n=9 параметр цикла изменяется до 5, с шагом 1}

begin

write(a,' ');

if in div 2 {Проверка условия: параметр цикла меньше либо равен n делённое нацело надвое}

then write(b,' ');

a:= a+b; b:=b+a; {Изменение значений первого и второго слагаемого}

end

else

for i:=1 to n div 2 do {Параметр цикла изменяется от 1 до n делённое нацело надвое с шагом 1}

begin

write(a,' '); {Печать первого слагаемого}

a:= a+b; write(b,' '); b:=b+a;

{Печать второго слагаемого и изменение значений первого и второго слагаемого}

end ;

End.

Результат работы программы может выглядеть так:

Ведите n

9

1 1 2 3 5 8 13 21 34

Ведите n

10

1 1 2 3 5 8 13 21 34 55

Упражнение 10

Составьте программу «Угадай!» . Программа «задумывает» случайное число в диапазоне от 0 до 99. После каждой попытки играющего угадать число программа выводит на экран одно из сообщений: «Больше», «Меньше» или «Угадано». На отгадывание числа даётся 10 попыток. Программа завершается после выполнения одного из условий: дан правильный ответ либо все попытки исчерпаны.

Ответ:

Var x, i, a, k: integer;

Begin

x:=random(100); {Случайное число от 0 до 99 помещается в переменную х}

writeln ('Задумано число от 1 до 99. Угадайте его!');

writeln ('У вас есть 10 попыток.');

i:=1; k:=0; {Номер попытки и количество сделанных попыток}

while i

begin

write('Попытка №',i,'. Введите предполагаемое число: ');readln (a);

{ввод числа}

i:=i+1;

if ax

then write('Меньше')

else if aБольше')

else begin write('Угадано'); i:=11; end;

writeln; {Переход на следующую строку}

k:=k+1;

end;

write('Число попыток: ',k);

End.

Результат работы программы может выглядеть так:

Задумано число от 1 до 99. Угадайте его!

У вас есть 10 попыток.

Попытка №1. Введите предполагаемое число: 50

Меньше

Попытка №2. Введите предполагаемое число: 25

Меньше

Попытка №3. Введите предполагаемое число: 12

Меньше

Попытка №4. Введите предполагаемое число: 6

Меньше

Попытка №5. Введите предполагаемое число: 3

Меньше

Попытка №6. Введите предполагаемое число: 2

Меньше

Попытка №7. Введите предполагаемое число: 1

Угадано

Число попыток: 7