Просмотр содержимого документа
«Циклы и ветвления»
Основы алгоритмизации
Команды цикла и ветвления
Задача
Написать программу для решения задачи. Дано натуральное число n . Посчитать количество цифр числа и определить какая цифра стоит в разряде с номером i (разряды нумеруются с конца, т.е. первый – разряд единиц)
Этапы выполнения задания
Определение результатов: переменная k (количество цифр в числе n )
Определение исходных данных: переменная n.
1
2
Алгоритм решения задачи
- Ввод исходных данных – заданное число n .
- Определение начального значения счетчика количества цифр ( k :=0)
- Количество цифр числа равно количеству десятичных разрядов в числе. Для нахождения всех цифр числа нужно:
- Разделить число на 10 Найти целую часть от деления и остаток (остаток и будет очередной цифрой) и увеличить счетчик количества цифр Если целая часть от деления больше 0, то в числе еще есть цифры и нужно перейти к выполнению пункта а), иначе все цифры найдены
- Разделить число на 10 Найти целую часть от деления и остаток (остаток и будет очередной цифрой) и увеличить счетчик количества цифр Если целая часть от деления больше 0, то в числе еще есть цифры и нужно перейти к выполнению пункта а), иначе все цифры найдены
- Разделить число на 10 Найти целую часть от деления и остаток (остаток и будет очередной цифрой) и увеличить счетчик количества цифр Если целая часть от деления больше 0, то в числе еще есть цифры и нужно перейти к выполнению пункта а), иначе все цифры найдены
- Разделить число на 10
- Найти целую часть от деления и остаток (остаток и будет очередной цифрой) и увеличить счетчик количества цифр
- Если целая часть от деления больше 0, то в числе еще есть цифры и нужно перейти к выполнению пункта а), иначе все цифры найдены
- Для определения цифры, стоящей в разряде i нужно после получения очередной цифры сравнить значения k и i . Если они совпадают, напечатать полученную цифру
- Вывод результата
Описание переменных
Все переменные, определенные для решения задачи, имеют тип integer
0 do begin z:=n mod 10 ; {текущая цифра} k:=k+ 1 ; if k=i then writeln( 'в разряде ' , i, ' стоит цифра ' , z); n:=n div 10 ; {уменьшение числа в 10 раз} end; if ik then writeln( 'в числе' , k, 'цифр, в разряде ' , i, ' нет цифр' ) else writeln( 'в числе ' , k, ' цифр' ); End. Программа " width="640"
Var i,k,n,z: integer ;
Begin
Write( 'введите значение n=' );
Readln(n);
Write( 'введите значение i=' );
Readln(i);
k:= 0 ;
while n 0 do
begin
z:=n mod 10 ; {текущая цифра}
k:=k+ 1 ;
if k=i then
writeln( 'в разряде ' , i, ' стоит цифра ' , z);
n:=n div 10 ; {уменьшение числа в 10 раз}
end;
if ik then
writeln( 'в числе' , k, 'цифр, в разряде ' , i, ' нет цифр' )
else
writeln( 'в числе ' , k, ' цифр' );
End.
Программа
Задача
Написать программу для решения задачи. Заполнить графическое окно кругами радиуса 10
Этапы выполнения задания
- Результат работы программы не зависит от исходных данных
- Определение результатов: рисунок, изображающий кружки по всему экрану
Алгоритм решения задачи
- Данная задача является обобщением задачи рисования кругов вдоль верхнего края экрана. Все действия, которые выполнялись в этой задаче, следуем повторить для нескольких рядов. Количество рядов будет определяться высотой экрана. Радиус r = 10. Определяем вертикальное положение центра первого круга - y = 11. Вертикальное положение любого другого круга, удовлетворяющего условию задачи, будет определяться координатой y . Для каждого вертикального положения в цикле, пока y не станет большим, чем вертикальный размер экрана, выполняем следующее:
- Данная задача является обобщением задачи рисования кругов вдоль верхнего края экрана. Все действия, которые выполнялись в этой задаче, следуем повторить для нескольких рядов. Количество рядов будет определяться высотой экрана.
- Радиус r = 10. Определяем вертикальное положение центра первого круга - y = 11.
- Вертикальное положение любого другого круга, удовлетворяющего условию задачи, будет определяться координатой y . Для каждого вертикального положения в цикле, пока y не станет большим, чем вертикальный размер экрана, выполняем следующее:
- задаем горизонтальное положение координаты центра круга x =11. в цикле, изменяющем значение x , рисуем круг и изменяем горизонтальное положение центра круга. Цикл должен завершиться, когда значение координаты x станет большим, чем горизонтальный размер экрана. изменяем вертикальное положение центра круга.
- задаем горизонтальное положение координаты центра круга x =11. в цикле, изменяющем значение x , рисуем круг и изменяем горизонтальное положение центра круга. Цикл должен завершиться, когда значение координаты x станет большим, чем горизонтальный размер экрана. изменяем вертикальное положение центра круга.
- задаем горизонтальное положение координаты центра круга x =11. в цикле, изменяющем значение x , рисуем круг и изменяем горизонтальное положение центра круга. Цикл должен завершиться, когда значение координаты x станет большим, чем горизонтальный размер экрана. изменяем вертикальное положение центра круга.
- задаем горизонтальное положение координаты центра круга x =11.
- в цикле, изменяющем значение x , рисуем круг и изменяем горизонтальное положение центра круга. Цикл должен завершиться, когда значение координаты x станет большим, чем горизонтальный размер экрана.
- изменяем вертикальное положение центра круга.
Описание переменных:
Переменные x, y, r – integer
uses graphabc;
var x, y, r: integer ;
begin
r:= 10 ;
y:= 11 ;
while y do
begin
x:= 11 ;
while x do
begin
circle(x,y,r);
x:= x + 20 ;
end ;
y:= y + 20 ;
end ;
end .
Программа
Рисование одного ряда кружков
Результат работы программы