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

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

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

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

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

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

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

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

Итоги урока

Глава 1. Основы алгоритмизации и программирования (выполненные задания по учебнику 8 класса ).

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

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

Глава 1

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

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

§ 2. Составление и реализация алгоритмов с ветвлением.

§ 3. Алгоритмическая конструкция ПОВТОРЕНИЕ.

 

 

Просмотр содержимого документа
«Глава 1. Основы алгоритмизации и программирования (выполненные задания по учебнику 8 класса ).»

Глава 1

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

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

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

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

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

If then

else .

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

If then .

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

= (равно),

(больше),

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

(не равно).

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

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

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

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


Упражнение 1

Составьте программу, которая задаёт вопрос: «В каком году был основан город Минск (например, в 1067г., В 993 г., либо в 1147 г.)?». В случае верного ответа программа должна сообщить «Верно», в противном случае – «Вы ошиблись».

Ответ:

Program upr1_1;

Var a: integer;

Begin

writeln ('В каком году был основан город Минск: в 1067г., В 993 г., либо в 1147 г.?');

readln (a); {ввод варианта ответа пользователя на поставленный вопрос}

if a=1067

then writeln ('Верно')

else writeln ('Неверно');

{если а=1067, то на экран выводится сообщение "Верно", в остальных случаях на экран выводится сообщение "Неверно"}

End.

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

В каком году был основан город Минск: в 1067г., В 993 г., либо в 1147 г.?

1067

Верно

В каком году был основан город Минск: в 1067г., В 993 г., либо в 1147 г.?

1147

Неверно

Упражнение 2

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

Ответ:

Program upr1_2;

Var a: integer;

Begin

writeln ('Введите целое число');

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

if a mod 2 = 0

then writeln ('Да')

else writeln ('Нет');

{если а делится на 2 без остатка и в этом случае является чётным, то на экран выводится сообщение "Да", иначе - на экран выводится сообщение "Нет"}

End.

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

Введите целое число

10

Да

Введите целое число

15

Нет

Упражнение 3

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

Ответ:

Program upr1_3;

Var a: integer;

Begin

writeln ('Введите целое число');

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

if a

then a:=sqr(a) ;

writeln (a);

{если а меньше нуля и в этом случае является отрицательным, то число возводится в квадрат, иначе - ничего не происходит. На экран выводится значение переменной а.}

End.

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

Введите целое число

5

5

Введите целое число

-3

9

Упражнение 4

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

Ответ:

Program upr1_4;

Var a, b, c: integer;

Begin

writeln ('Введите два целых числа через пробел');

readln (a, b); {ввод двух целых чисел}

write ('решите пример: ', a,' * ',b,' = ');

readln (c); {ввод результата произведения двух целых чисел}

if c=a*b

then writeln ('Правильно!')

else writeln ('Вы ошиблись');

{если введённое число равно произведению введённых ранее чисел, то на экран выводится сообщение "Правильно!", иначе , на экран выводится сообщение "Вы ошиблись"}

End.

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

Введите два целых числа через пробел

5 6

решите пример: 5 * 6 = 30

Правильно!

Введите два целых числа через пробел

5 6

решите пример: 5 * 6 = 28

Вы ошиблись

Упражнение 5

Составьте программу, которая проверяет, является ли человек заданного возраста школьником, если возраст школьника от 6 до 17 лет, и выводит на экран соответствующее сообщение: «Является» либо «Не является».

Ответ:

Program upr1_5;

Var a: integer;

Begin

writeln ('Введите возраст человека');

readln (a); {ввод целого числа - возраста человека}

if (a=6) and (a

then writeln ('Является')

else writeln ('Не является');

{если введённое число попадает в промежуток от 6 до 17 включительно, то на экран выводится сообщение "Является", иначе - на экран выводится сообщение "Не является"}

End.

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

Введите возраст человека

14

Является

Введите возраст человека

18

Не является

Упражнение 6

Составьте программу, которая проверяет, равны ли 3 введённых целых числа, выводит на экран соответствующее сообщение: «Равны» либо «Не равны».

Ответ:

Program upr1_6;

Var a, b, c: integer;

Begin

writeln ('Введите 3 целых числа через пробел');

readln (a, b, c); {ввод трёх целых чисел}

if (a=b) and (b=c)

then writeln ('Равны')

else writeln ('Не равны');

{если введённые числа равны между собой, то на экран выводится сообщение "Равны", иначе - на экран выводится сообщение "Не равны"}

End.



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

Введите 3 целых числа через пробел

3 4 5

Не равны

Введите 3 целых числа через пробел

3 4 3

Не равны

Введите 3 целых числа через пробел

3 3 3

Равны

§ 2. Составление и реализация алгоритмов с ветвлением.

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

  • Алгоритмы, содержащие конструкцию ветвления, называют алгоритмами с ветвлением.

Упражнение 1

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

Ответ:


Program upr2_1;

Var a: integer;

Begin

writeln ('Введите целое число');

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

if a mod 3 = 0

then writeln ('Делится')

else writeln ('Не делится');

{если при делении на 3 введённого числа получаем остаток ноль, то на экран выводится сообщение "Делится", иначе , на экран выводится сообщение "Не делится"}

End.

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

Введите целое число

10

Не делится

Введите целое число

9

Делится

Упражнение 2

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

Ответ:

Program upr2_2;

Var n: integer;

Begin

writeln ('Сколько конфет у друзей?');

readln (n); {ввод целого числа}

if n mod 2 = 0

then writeln ('Да')

else writeln ('Нет');

{если при делении на 2 введённого числа получаем остаток ноль, то на экран выводится сообщение "Да", иначе , на экран выводится сообщение "Нет"}

End.


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

Сколько конфет у друзей?

5

Нет

Сколько конфет у друзей?

8

Да

Блок – схема:





















Упражнение 3

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

Ответ:

Program upr2_3;

Var a, b, c: integer;

Begin

writeln ('Введите три целых числа через пробел');

readln (a, b, c); {ввод трёх целых чисел}

if (a0) and (b0) and (c0)

then writeln ((a+b+c)/3);

{если ни одно из введённых чисел не равно нулю, то на экран выводится их среднее арифметическое}

End.

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

Введите три целых числа через пробел

5 2 1

2.66666666666667

Введите три целых числа через пробел

6 0 7

Блок – схема:





























Упражнение 4

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

Ответ:

Program upr2_4;

Var x: integer;

Begin

writeln ('Введите целое число');

readln (x); {ввод целого числа}

if (x10) and (x

then writeln ('Принадлежит')

else writeln ('Не принадлежит');

{если введённое число больше 10 и меньше 20, то на экран выводится сообщение "Принадлежит", иначе на экран выводится сообщение "Не принадлежит"}

End.

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

Введите целое число

17

Принадлежит

Введите целое число

21

Не принадлежит

Упражнение 5

В компьютер поступают результаты соревнований по плаванию (количество минут и секунд) для трёх спортсменов. Составьте программу, которая выводит на экран лучший результат.

Ответ:

Program upr2_5;

Var t1, t2, t3, m1, s1, m2, s2, m3, s3: integer;

Begin

writeln ('Ведите результаты соревнований первого спортсмена через пробел (мин сек)');

readln (m1,s1);

writeln ('Ведите результаты соревнований первого спортсмена через пробел (мин сек)');

readln (m2,s2);

writeln ('Ведите результаты соревнований первого спортсмена через пробел (мин сек)');

readln (m3,s3); {ввод результатов соревнований трёх спортсменов}

t1:=m1*60+s1;

t2:=m2*60+s2;

t3:=m3*60+s3; {перевод результата из вида минуты и секунды в секунды}

if (t1минут ',s1,' секунд ');

if (t2минут ',s2,' секунд ');

if (t3минут ',s3,' секунд ');

{поиск наибольшего значения из трёх введённых и печать наибольшего}

End.

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

Ведите результаты соревнований первого спортсмена через пробел (мин сек)

3 47

Ведите результаты соревнований первого спортсмена через пробел (мин сек)

3 59

Ведите результаты соревнований первого спортсмена через пробел (мин сек)

3 51

3 минут 47 секунд

Упражнение 6

Составьте программу, которая выводит на экран число сотен в заданном числе, если оно трёхзначное, а в противном случае сообщает: «Число не трёхзначное».

Ответ:

Program upr2_6;

Var a: integer;

Begin

writeln ('Ведите целое число');

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

if (a=100) and (a

then writeln (a div 100,' сотен')

else writeln('Число не трёхзначное') ;

{проверка условия трёхзначности числа и печать числа сотен, если условие выполняется, в противном случае вывод сообщения "Число не трёхзначное"}

End.

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

Ведите целое число

356

3 сотен

Ведите целое число

99

Число не трёхзначное

Ведите целое число

1024

Число не трёхзначное

Упражнение 7

Составьте программу, которая по заданному а исследует корни уравнения ах=5 и выводит на экран значение вычисленного корня либо сообщение «Корней нет».

Ответ:

Program upr2_7;

Var a: integer;

Begin

writeln ('Ведите целое число');

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

if a=0 then writeln ('корней нет')

else writeln('Значение корня ', 5/a) ;

{проверка условия а=0, если условие выполняется, то на экран выводится сообщение "Корней нет", в противном случае вывод значения вычисленного корня}

End.

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

Ведите целое число

6

Значение корня 0.833333333333333

Ведите целое число

0

корней нет

Упражнение 8

Составьте программу, которая проверяет, можно ли в данном круге радиуса r вырезать круг радиуса а. Если можно, то рисует в графическом окне круг радиуса а в круге радиуса r, иначе – выводит на экран сообщение «Нельзя».

Ответ:

Program upr2_8;

uses graphabc;

Var a, r: integer;

Begin

writeln ('Ведите значение радиуса r');

readln (r); {ввод значения радиуса r}

writeln ('Ведите значение радиуса a');

readln (a); {ввод значения радиуса a}

if a

begin

SetWindowSize (640,480);

SetBrushStyle (bsClear);

SetPenWidth (4);

SetPenColor (clRed);

Circle (350, 240, r);

SetPenColor (clGreen);

Circle (350, 240, a);

end

else writeln('Нельзя');

{проверка условия а=0, если условие выполняется, то на экран выводятся нарисованные окружности, в противном случае вывод сообщения "Нельзя"}

End.

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

Ведите значение радиуса r

150

Ведите значение радиуса a

160

Нельзя

Ведите значение радиуса r

150

Ведите значение радиуса a

130





Упражнение 9

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

Ответ:

Program upr2_9;

Var a, b, c: integer;

Begin

writeln ('Ведите длины сторон треугольника через пробел');

readln (a, b, c); {ввод значений длин сторон треугольника}


if (a=b) and (b=c)

then writeln('Равносторонний')

else

if (a=b) or (a=c) or (b=c)

then writeln('Равнобедренный')

else writeln('Разносторонний');

{проверка условия того, что все три стороны равны, если условие выполняется, то на экран выводится сообщение "Равносоторонний", в противном случае проверка условия того, что равны хотя бы 2 стороны, если условие выполняется, то на экран выводится сообщение "Равнобедренный", в противном случае на экран выводится сообщение "Разносторонний"}

End.

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

Ведите длины сторон треугольника через пробел

3 4 5

Разносторонний

Ведите длины сторон треугольника через пробел

3 3 5

Равнобедренный

Ведите длины сторон треугольника через пробел

5 5 5

Равносторонний

Упражнение 10

Для продажи книг в магазине используется компьютер. Составьте программу, которая по стоимости книги и сумме денег, внесённой покупателем, выводит на экран сумму причитающейся сдачи, если денег внесено больше. Если сдача не требуется, программа выводит на экран «Спасибо!».

Ответ:

Program upr2_10;

Var a, b: integer;

Begin

writeln ('Ведите стоимость книги');

readln (a); {ввод значения стоимости книги}

writeln ('Ведите сумму внесённых денег');

readln (b); {ввод значения стоимости книги}

if aСдача ', b-a)

else

if a=b then writeln('Спасибо!')

{проверка условия того, что денег внесено больше, если истина, то на экран выводится сообщение "Сдача" и размер сдачи, в противном случае проверка условия того, что денег внесено столько же, сколько стоит книга, если условие выполняется, то на экран выводится сообщение "Спасибо!"}

End.

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

Ведите стоимость книги

15000

Ведите сумму внесённых денег

20000

Сдача 5000

Ведите стоимость книги

15000

Ведите сумму внесённых денег

15000

Спасибо!

§ 3. Алгоритмическая конструкция ПОВТОРЕНИЕ.

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

  • Есть несколько форм оператора for: оператор цикла с параметром и оператор цикла с предусловием.

  • Параметр цикла for в теле цикла нельзя изменять с помощью команды присваивания.

  • Параметр цикла, его начальное и конечное значения должны принадлежать к одному типу данных (чаще всего integer, но могут быть и другие, кроме вещественного).

  • Оператор цикла с предусловием применяется в случае, если число повторений тела цикла заранее неизвестно и определяется в ходе выполнения цикла.

  • Цикл с предусловием может выполняться бесконечно, если значение условия всегда будет истинным.

  • Цикл с предусловием не выполнится ни разу, если условие сразу оказывается ложным.

Упражнение 1

Сколько раз выполнится тело цикла

For n:=3 to 6 do write (‘*’);?

Ответ:

  1. раза (для n=3, 4, 5, 6).

Упражнение 2

Составьте программу, которая 6 раз выведет на экран фразу «Я люблю свою Родину!» в строку через пробел.

Ответ:

Program upr3_2;

Var i: integer;

Begin

for i:=1 to 6 do {Параметр i меняется от 1до 6 с шагом 1}

write('Я люблю свою Родину! '); {Вывод текстового сообщения «Я люблю свою Родину!»}

End.

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

Я люблю свою Родину! Я люблю свою Родину! Я люблю свою Родину! Я люблю свою Родину! Я люблю свою Родину! Я люблю свою Родину!


Упражнение 3

Составьте блок – схему и напишите программу вывода на экран:

А) 5 первых четных натуральных чисел;.

Ответ:



























Program upr3_3A;

Var i, x: integer;

Begin

x:=2; {первое чётное натуральное число равно 2}

for i:=1 to 5 do {Параметр i меняется от 1до 5 с шагом 1}


begin write(x,' '); {вывод очередного чётного числа}

x:=x+2 ; {Следующее чётное число на 2 больше предыдущего}

end;

End.

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

2 4 6 8 10

Б) n первых натуральных чисел;.

Блок – схема:











Ответ:



Program upr3_3B;

Var i, n: integer;

Begin

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

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

for i:=1 to n do {Параметр i меняется от 1 до n с шагом 1}

write(i,' '); {вывод очередного натурального числа}

End.

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

Ведите n

7

1 2 3 4 5 6 7

Упражнение 4

Составьте программу, которая вычисляет сумму натуральных чисел от 10 до 15 и выводит на экран результат.

Ответ:

Program upr3_4;

Var i, S: integer;

Begin

S:=0; {Начальное значение суммы}

for i:=10 to 15 do {Параметр i меняется от 10 до 15 с шагом 1}

S:=S+i; {увеличение суммы на очередное число}

write('Сумма = ',S); {вывод конечного значения суммы}

End.

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

Сумма = 75

Упражнение 5

Составьте программу, которая определяет, сколько слагаемых должно быть в сумме 1+2+3+4+…, чтобы сумма оказалась:

А) больше 20;

Б) больше заданного числа n.

Результат – количество слагаемых – выведите на экран. Составьте блок – схемы.

Ответ А:

Program upr3_5A;

Var i, S: integer;

Begin

S:=1; {Начальное значение суммы}

i:=1; { Первое слагаемое равно 1}

while S

begin


i:=i+1; {Очередное слагаемое на 1 больше предыдущего}

S:=S+i; {увеличение суммы на очередное число}

end;

write(i, ' слагаемых'); {вывод конечного значения суммы}

End.

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

6 слагаемых

Блок – схема:



















Ответ Б:

Program upr3_5B;

Var i, n, S: integer;

Begin

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

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

S:=1; {Начальное значение суммы}

i:=1; { Первое слагаемое равно 1}

while S

begin

i:=i+1; {Очередное слагаемое на 1 больше предыдущего}

S:=S+i;{увеличение суммы на очередное число}

end;

write(i, ' слагаемых'); {вывод конечного значения суммы}

End.

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

Ведите n

20

6 слагаемых

Блок – схема:



























Упражнение 6

Составьте программу, которая рисует красные круги радиуса 30 по вертикали вдоль левого края графического окна.


Ответ:

Program upr3_6;

uses graphabc;

Var x, y, r: integer;

Begin

SetWindowSize (640,480);

ClearWindow;

SetBrushColor (clRed);

x:=32; y:=32; {начальное значение x, y}

r:=30;

while ydo

begin

Circle (x, y, r); {Пока y

y:=y+60; {Смещение координаты y для следующего круга}

end ;

End.

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

Упражнение 7

Составьте программу, которая имитирует движение голубого шарика радиуса 20 по горизонтали слева направо вдоль нижнего края графического окна.

Ответ:

Технология создания:

  1. нарисовать объект и организовать временную паузу;

  2. нарисовать объект на прежнем месте цветом фона (стереть объект);

  3. повторять действия 1) и 2), изменяя координаты объекта.



Program upr3_7;

uses graphabc;

Var x, y, r: integer;

Begin

SetWindowSize (640,480);

ClearWindow;

x:=22; y:=22; {начальное значение x, y}

r:=20;

while y

begin {Пока y

SetBrushColor (clBlue);

Circle (x, y, r);

Sleep(10); {Пауза в милисекундах}

SetBrushColor (clWhite);

SetPenColor (clWhite);

Circle (x, y, r); {Стирание объекта}

y:=y+4; {Смещение координаты y для следующего круга}

end ;

End.



§ 4. Составление и реализация алгоритмов с повторением.

Упражнение 1

Составьте программу, которая вычисляет произведение натуральных чисел от 5 до 10 и выводит на экран результат.

Ответ:

Program upr4_1;

Var i, P: integer;

Begin

P:=1; {Начальное значение произведения}

for i:=5 to 10 do {Параметр i меняется от 5 до 10 с шагом 1}

P:=P*i; {увеличение произведения на очередное число}

write('Произведение = ',P); {вывод конечного значения произведения}

End.

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

Произведение = 151200

Упражнение 2

Составьте программу, которая выводит на экран квадраты n первых натуральных чисел.

Ответ:

Program upr4_2;

Var i,n: integer;

Begin

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

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

for i:=1 to n do {Параметр i меняется от 1 до n с шагом 1}

write(sqr(i),' '); {вывод конечного значения через пробел}

End.

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

Ведите n

14

1 4 9 16 25 36 49 64 81 100 121 144 169 196

Упражнение 3

Составьте программу, которая выводит на экран значение выражения:

А) 5n; Б) а10; В) (а+1)n.

Ответ А:

Program upr4_3А;

Var i,n, P: integer;

Begin

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

readln (n); {ввод показателя степени}

P:=1; {Начальное значение P равно1}

for i:=1 to n do {Параметр i меняется от 1 до n с шагом 1}

P:=P*5; {В переменной P накапливается значение степени}

write('P=',P);

End.

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

Ведите n

3

P=125

Ответ Б:

Program upr4_3B;

Var i, a, P: integer;

Begin

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

readln (a); {ввод основания}

P:=1; {Начальное значение P равно1}

for i:=1 to 10 do {Параметр i меняется от 1 до 10 с шагом 1}

P:=P*a; {В переменной P накапливается значение степени}

write('P=',P);

End.

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

Ведите a

2

P=1024

Ответ В:

Program upr4_3V;

Var i,a, n, P: integer;

Begin

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

readln (a); {ввод основания}

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

readln (n); {ввод показателя степени}

P:=1; {Начальное значение P равно1}

for i:=1 to n do {Параметр i меняется от 1 до n с шагом 1}

P:=P*(a+1); {В переменной P накапливается значение степени}

write('P=',P);

End.

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

Ведите a

2

Ведите n

3

P=27

Упражнение 4

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

Ответ:

Program upr4_4;

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 окружностей зелёного цвета разных радиусов с одним центром.

Ответ:

Program upr4_5;

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).

Ответ:

Program upr4_6;

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 и на само себя).

Ответ:

Program upr4_7;

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 раза.

Ответ:

Program upr4_8;

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).

Ответ:

Program upr4_9;

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 попыток. Программа завершается после выполнения одного из условий: дан правильный ответ либо все попытки исчерпаны.

Ответ:

Program upr4_8;

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


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!