На позапрошлом занятии были даны 5 заданий на циклы for. К сожалению, даже второе вызвало у многих затруднения. Давайте ещё раз разберём их.
Для начала напомню общую структуру программы в Pascal
program Project1;//имя программы. Не играет роли
{$AppType CONSOLE} //Эту строку вставляет сама Делфи, показывает, что будет паскалевское приложение
uses SysUtils;//Используемые модули. Если работаем черед Делфи, ничего не меняйте
var //здесь объявляются переменные. Если в программе нет ни одной переменной, он не нужен
begin
//Здесь будет текст собственно программы
Readln; //Эта команда нужна, чтобы окно после завершения работы не закрывалось автоматически, а можно было увидеть результат.
end.
Напомню также структуру оператора цикла
for {переменная} := {начальное значение переменной} to {конечное значение переменной} do
begin
{действия, которые нужно выполнить}
end;
Задание 1.
Написать программу, которая выведет на экран все числа от 1 до 100
Здесь всё просто (в этом и последующий примерах я буду приводить только блок var и всё, что находится между begin и end)
var i:integer;//забили в памяти ячейку для целого числа - счётчика цикла
begin
for i := 1 to 100 do //Выполняем действие 100 раз
begin
Writeln(i); //А действие это - напечатать число
end;
Readln;
end.
Задание 2.
Написать программу, которая выведет на экран квадраты чисел от 1 до 100
Чем это задание отличается от предыдущего? Только действием. Значит и в программе надо поменять только действие:
var i:integer;//забили в памяти ячейку для целого числа - счётчика цикла
begin
for i := 1 to 100 do
begin
Writeln(i*i); //Теперь будет печататься квадрат числа
end;
Readln;
end.
Задание 3.
Написать программу, которая выведет на экран квадраты только нечётных чисел от 1 до 100
Чем эта программа отличается от предыдущей? Тем, что перед тем, как выполнить действие, выполнится проверка на чётность. Можно исопльзовать функцию odd() а можно - деление с остатком, mod.
var i:integer;
begin
for i := 1 to 100 do
begin
if odd(i) then
Writeln(i*i); //Теперь будут печататься только нечётные квадраты
end;
Readln;
end.
Задание 4.
Написать программу, которая попросит у человека ввести число, а затем найдёт сумму всех чисел от 1 до введённого числа
Вот здесь было больше всего непоняток. Чем эта программа отличается от самой первой? Тем, что верхняя граница заранее не известна, а её будет водить человек.
Значит, нужна переменная, значение которой мы попросим ввести человека, а затем используем как верхнюю границу в цикле.
var i:integer;
n:integer;//вот это вторая переменная
begin
WriteLn('Vvedite Chislo'); //Сначала объясняем человеку, что мы от него хотим
ReadLn(n);//получаем это число от человека
for i := 1 to n do //Выполняем действие n раз
begin
Writeln(i); //А действие это - напечатать число
end;
Readln;
end.
Задание 5.
Написать программу, которая выведет следующие 100 строк:
1 год
2 года
3 года
4 года
5 лет
6 лет
и т.д.
Давайте для начала сделаем английский аналог.
1 year
2 years
3 years
и т.д.
Вспомним задачу 3. Если число будет равно 1, нужнописать year, а если больше - years.
begin
for i := 1 to 100 do
begin
if i=1 then
Writeln(i, ' year')
else
Writeln(i, ' years');
end;
Readln;
end.
А для русского языка сформулируйте условия самостоятельно и напишите аналогичную программу.
Подскажу, как определить, заканчивается ли число на единицу. Последняя цифра числа - это его остаток от деления на 10. Поэтому русская фраза "Если число i оканчивается на единицу, то..." в Паскале будет выглядеть как:
if (i mod 10) = 1 then
Для начала напомню общую структуру программы в Pascal
program Project1;//имя программы. Не играет роли
{$AppType CONSOLE} //Эту строку вставляет сама Делфи, показывает, что будет паскалевское приложение
uses SysUtils;//Используемые модули. Если работаем черед Делфи, ничего не меняйте
var //здесь объявляются переменные. Если в программе нет ни одной переменной, он не нужен
begin
//Здесь будет текст собственно программы
Readln; //Эта команда нужна, чтобы окно после завершения работы не закрывалось автоматически, а можно было увидеть результат.
end.
Напомню также структуру оператора цикла
for {переменная} := {начальное значение переменной} to {конечное значение переменной} do
begin
{действия, которые нужно выполнить}
end;
Задание 1.
Написать программу, которая выведет на экран все числа от 1 до 100
Здесь всё просто (в этом и последующий примерах я буду приводить только блок var и всё, что находится между begin и end)
var i:integer;//забили в памяти ячейку для целого числа - счётчика цикла
begin
for i := 1 to 100 do //Выполняем действие 100 раз
begin
Writeln(i); //А действие это - напечатать число
end;
Readln;
end.
Задание 2.
Написать программу, которая выведет на экран квадраты чисел от 1 до 100
Чем это задание отличается от предыдущего? Только действием. Значит и в программе надо поменять только действие:
var i:integer;//забили в памяти ячейку для целого числа - счётчика цикла
begin
for i := 1 to 100 do
begin
Writeln(i*i); //Теперь будет печататься квадрат числа
end;
Readln;
end.
Задание 3.
Написать программу, которая выведет на экран квадраты только нечётных чисел от 1 до 100
Чем эта программа отличается от предыдущей? Тем, что перед тем, как выполнить действие, выполнится проверка на чётность. Можно исопльзовать функцию odd() а можно - деление с остатком, mod.
var i:integer;
begin
for i := 1 to 100 do
begin
if odd(i) then
Writeln(i*i); //Теперь будут печататься только нечётные квадраты
end;
Readln;
end.
Задание 4.
Написать программу, которая попросит у человека ввести число, а затем найдёт сумму всех чисел от 1 до введённого числа
Вот здесь было больше всего непоняток. Чем эта программа отличается от самой первой? Тем, что верхняя граница заранее не известна, а её будет водить человек.
Значит, нужна переменная, значение которой мы попросим ввести человека, а затем используем как верхнюю границу в цикле.
var i:integer;
n:integer;//вот это вторая переменная
begin
WriteLn('Vvedite Chislo'); //Сначала объясняем человеку, что мы от него хотим
ReadLn(n);//получаем это число от человека
for i := 1 to n do //Выполняем действие n раз
begin
Writeln(i); //А действие это - напечатать число
end;
Readln;
end.
Задание 5.
Написать программу, которая выведет следующие 100 строк:
1 год
2 года
3 года
4 года
5 лет
6 лет
и т.д.
Давайте для начала сделаем английский аналог.
1 year
2 years
3 years
и т.д.
Вспомним задачу 3. Если число будет равно 1, нужнописать year, а если больше - years.
begin
for i := 1 to 100 do
begin
if i=1 then
Writeln(i, ' year')
else
Writeln(i, ' years');
end;
Readln;
end.
А для русского языка сформулируйте условия самостоятельно и напишите аналогичную программу.
Подскажу, как определить, заканчивается ли число на единицу. Последняя цифра числа - это его остаток от деления на 10. Поэтому русская фраза "Если число i оканчивается на единицу, то..." в Паскале будет выглядеть как:
if (i mod 10) = 1 then
Немає коментарів:
Дописати коментар