Процедуры вывода Write и WriteLn . 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Процедуры вывода Write и WriteLn .



Введение.

Изучение курса информатики в школе должно преследовать две цели: общеобразовательную и прикладную. Прикладная цель заключается в получении практических навыков работы с компьютером и современными информационными технологиями. Образовательная – в освоении учащимися фундаментальных понятий современной информатики, формирования у них навыков алгоритмического мышления, понимания компьютера как современного средства обработки информации.

В данной работе я разработала теоретический и практический материал, на основе которого можно составлять поурочные планы по программированию на языке Турбо Паскаль.

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

Параллельно с решениями задач я старалась изложить основы программирования на языке Паскаль так, чтобы его мог освоить каждый начинающий учитель информатики без посторонней помощи.

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

В результате изучения этого материала учащиеся должны научиться создавать небольшие программы, включающие циклы, ветвления, процедуры и использующие графику и звук.

В конце каждой главы имеется самостоятельные работы, которые я рекомендую проводить для учащихся.

Если программа курса информатики для 10-11 классов рассчитана на 68 учебных часов, то для знакомства с языком программирования этот материал вполне достаточный. При 132 часах эту работу можно дополнить такими темами, как "Массивы", "Работа со строковыми переменными" и т.д.

 


 


Задача 1.

Изобразить на листке бумаги в клетку (один символ – одна клетка), что напечатает оператор:

Write('12','5 + 1',5 + 1,' = ',120+21)

 

Решение.

125 + 16 = 141

 

Программы на Паскале содержат "знаки препинания": служебные слова BEGIN и END, точка с запятой и точка.

BEGIN (читается – "бигин"; переводится – "начало") ставят в начале программы, чтобы было видно, откуда она начинается. END (читается – "энд"; переводится – "конец") с точкой ставится в конце программы, чтобы было видно, где она кончается. Точкой с запятой отделяют операторы друг от друга. Служебные слова BEGIN и END от операторов точкой с запятой не отделяются.

 


Пример (первая программа на Паскале):

Программа Что видим в результате на экране

 

BEGIN

Write('Начали!'); Начали!95

Write(8+1);

Write(5)

END.

 

 
 


 

 

Программу можно записывать и в строчку, и в столбик. Служебные слова и операторы могут быть записаны любыми буквами (заглавными или строчными, а также любым шрифтом).

Программа на Паскале может содержать комментарии. Это любые пояснительные тексты, взятые в фигурные скобки, которые не влияют на выполнение программы.

 

Пример:

Программа Что видим в результате на экране

 

BEGIN

Write('Начали!'); {Это приказ печатать!} Начали!95

Write(8+1);

Write(5)

END.

 

Правила записи и выполнения оператора WriteLn те же, что и у Write, с одним исключением – после его выполнения следующий оператор Write или WriteLn печатает свою информацию с начала следующей строки, а после выполнения оператора Write продолжает печатать в той же.

 

Примеры:

Программа Что видим в результате на экране

 

BEGIN Write('Ама'); Write('зонка') END. Амазонка

BEGIN Write('Ама'); WriteLn('зонка') END. Амазонка

BEGIN WriteLn('Ама'); Write('зонка') END. Ама

зонка

BEGIN WriteLn('Ама'); WriteLn('зонка') END. Ама

зонка

 

После выполнения Write курсор остается в той же строке, а после выполнения WriteLn курсор прыгает в начало следующей строки, поэтому оператор WriteLn можно использовать просто для перевода курсора в начало следующей строки. Для этого достаточно написать одно слово WriteLn, без скобок.

 

Задача 2.

Что напечатает программа?

BEGIN

Write(1992);

WriteLn(' Мы начинаем!');

WriteLn(6*8);

WriteLn;

WriteLn('Шестью шесть ', 6*6,'.Арифметика:,(6+4)*3)

END.


 

Решение.

1992 Мы начинаем!

 

Шестью шесть 36.Арифметика:30

Оператор присваивания.

Оператор присваивания состоит из знака присваивания:=, слева от которого пишется переменная, а справа – число, переменная или выражение. При выполнении оператора присваивания компьютер "в уме" вычисляет правую часть и присваивает вычисленное значение переменной, стоящей в левой части.

 

Пример:

Фрагмент программы Что будет напечатано в результате

выполнения данного фрагмента

BEGIN

а:=2*3+4;

b:=а; y=21

y:=a+b+1;

Write('y=',y)

END.

 

Замечание

Если переменная принимает новое значение, то старое значение автоматически стирается.

 

Задача 3.

Что напечатает компьютер в результате выполнения следующего фрагмента программы?

BEGIN

t:=9;

k:=1+2;

s:=2*k;

t:=6-s;

Write('t=',t)

END.

 

Ответ. t=0

 


Описание переменных.

Описание переменных начинается со служебного слова VAR (читается – "вар"; переводится – "переменная"), которое записывается выше BEGIN. После VAR записываются имена всех переменных, встречающихся в программе с указанием через двоеточие типа значений, которые каждая переменная имеет право принимать.

Для чего описывают переменные?

Компьютер отводит в памяти места (ячейки) под переменные величины, упомянутые в программе. Разным типам значений переменных компьютер отводит разные по объёму ячейки.


 

Типы значений переменных.

тип читается переводится диапазон принимаемых значений объём памяти для одной переменной
Integer интеджер целый целые числа от –32768 до 32 767 2 байта
LongInt лонг'инт длинное целое целые числа от –2147483648 до 2147483 647 4 байта
Byte байт   целые числа от 0 до 255 1 байт
Real риэл вещественный целые и дробные числа 6 байт

 

Чтобы заставить Паскаль выводить вещественные числа в обычном, понятном виде, нужно в оператор вывода WriteLn дописать формат численного значения переменной: WriteLn(x:n:m), где n – натуральное число, показывающее сколько символов, включая целую часть, дробную часть, знак и десятичную точку, должно занимать всё изображение числа, m – натуральное число, показывающее количество символов после десятичной точки.

Пример:

Программа Что видим в результате на экране

 

VAR a,b: Integer; с= 1.17

c: Real;

BEGIN

a:=6;

b:=7;

c:=b/a;

WriteLn('c=',c:5:2)

END.

 

Самостоятельная работа №1 по теме "Процедуры вывода. Оператор присваивания. Описание переменных".

I ВАРИАНТ

 

1. Что выведет на экран следующая программа?

BEGIN

Write('Я учусь в ');

Write(2*3+5);

WriteLn(' классе.');

Write('Мне',16,'лет.');

WriteLn;

WriteLn('Я знаю, что ','2*2=');

Write((6*6-12)/6)

END.

 

2. Какое значение будет иметь переменная а

после выполнения следующих операторов

присваивания:

а:=5;

b:=а+4;

a:=а+b;

а:=а+b+а*b;

 

3. Написать программу, которая вычисляет

переменную d по формуле

и выводит результат на экран,

если а =2, b =5.

 

 


II ВАРИАНТ

 

1. Что выведет на экран

следующая программа?

BEGIN

Write('Мне ');

Write(3*3+7);

WriteLn(' лет.');

Write('Я учусь в',11,'классе.');

WriteLn;

WriteLn('Неправда, что ','2*2=');

Write((7*6-22)/4)

END.

 

2. Какое значение будет иметь переменная b

после выполнения следующих операторов

присваивания:

а:=3;

b:=а+9;

b:=а+b;

b:=а-b+b/a;

 

3. Написать программу, которая вычисляет

переменную c по формуле

и выводит результат на экран,

если а =6, b =4.

 



 

Устные упражнения.

1. Что напечатает следующая программа? Верно ли описана переменная f?

VAR f: Integer;

BEGIN

f:=30;

f:=f+4;

WriteLn(f)

END.

 

  1. Что будет напечатано при выполнении следующих фрагментов программ:

а) a:=100; a:=10*a+1; WriteLn(a);

б) a:=100; a:=-a; WriteLn(a);

в) a:=10; b:=25; a:=b-a; b:=a-b; WriteLn(a,' ',b);

 

Имена переменных.

Именем переменной в Паскале может служить любая последовательность цифр, латинских букв и знака подчеркивания, не начинающаяся с цифры.

 

Примеры правильной записи имён:

f

s

velichina

xxx

polnaja_summa

tri_pius_dva

s25

k1

_r1

 

Примеры неправильной записи имён:

ж

ширина

polnaja summa

2as

max*y

 

Замечание

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

 

Задача 4.

Как правильно записать арифметическое выражение в программе?

Решение.

 

Замечание

В десятичных дробях принято вместо запятой ставить точку.

 

Задача 5.

Что напечатает данная программа?

VAR a,b: Integer;

BEGIN

a:=(Sqrt(16)+1)*(20-Sqr(2*2))-11;

b:=11div(a-4);

WriteLn(Sqr(a)+b-1)

End.

 

Ответ. 82

Задача 6.

Написать программу для вычисления площади основания и объёма спичечной коробки, если известны её размеры: высота – 12.41 см., ширина – 8 см., толщина – 5 см.

 

Программа.

 

VAR shirina,tol,S: Byte;

visota,V: Real;

BEGIN

visota:=12.41;

shirina:=8;

tol:=5;

S:= shirina* tol;

V:=S*visota;

Write('S=',S,'V=',V:10:3)

END.

 

 


Пример.

 

VAR a,b: Integer;

BEGIN

ReadLn(a,b);

WriteLn(a+b)

END.

 

Эта программа на операторе ReadLn остановиться и будет ждать. Человек должен набрать на клавиатуре первое число (значение переменной a), затем нажать клавишу пробела, затем набрать второе число (значение переменной b) и нажать клавишу Enter. Паскаль воспринимает нажатие пробела как сигнал человека о том, что закончен набор на клавиатуре одного числа и сейчас начнётся набор другого. После набора на клавиатуре последнего числа необходимо нажать клавишу

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

 

Замечание.

Оператор ReadLn можно писать и без скобок, просто так: ReadLn. Компьютер остановиться и будет ждать нажатия клавиши Enter. Таким образом создаются паузы в процессе выполнения программы.

 

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

 

Пример.

VAR a,b: Integer;

BEGIN

WriteLn('Введите два целых числа');

ReadLn(a,b);

WriteLn(a+b)

END.

 

 

 


Строковые переменные.

 

Значением переменной может быть не только число, но и текст. Оператор a:='Привет всем!' записывает в ячейку a строку Привет всем! Оператор WriteLn(a) выведет на экран текст Привет всем!

Описание VAR a:String говорит о том, что переменная а обязана иметь текстовое значение.

(читается – "стринг"; переводится – "строка")

Строковую переменную можно задавать не только оператором присваивания, но и оператором ReadLn.

Пример.

VAR а: String;

BEGIN

WriteLn('Введите какое-нибудь слово');

ReadLn(a);

WriteLn('Вы ввели слово ',а)

END.

 

Задача7.

Написать программу, которая осуществляла бы такой диалог человека с компьютером:

 

Компьютер выводит на экран:

Здравствуй, я компьютер, а тебя как зовут?

Человек вводит с клавиатуры:

имя

Компьютер выводит на экран:

Очень приятно, …. Сколько тебе лет?

Человек вводит с клавиатуры:

возраст

Компьютер выводит на экран:

Ого! Целых … лет! Ты уже совсем взрослый!

 

Программа.

 

VAR a: String;

b: Byte;

BEGIN

WriteLn('Здравствуй, я компьютер, а тебя как зовут?');

ReadLn(a);

WriteLn('Очень приятно, ',а,'. Сколько тебе лет?');

ReadLn(b);

WriteLn(' Ого! Целых ',b,' лет! Ты уже совсем взрослый!')

END.

 

Замечание

При вводе одним оператором ReadLn нескольких строковых переменных (или строковых переменных вместе с числовыми) нужно заканчивать ввод каждой переменной нажатием клавиши Enter.

 

 

 


Разветвляющиеся программы.

 

Процедуры ввода и вывода, а также оператор присваивания позволяют писать только линейные программы, в которых все команды выполняются последовательно одна за другой. Но очень часто возникает необходимость выполнять различные команды в зависимости от выполнения какого – то условия. Для таких целей в Паскале введён условный оператор:

If условие then оператор_1

else оператор_2;

(If читается – "иф"; переводится – "если"; then читается "зэн"; переводится – "то"; else читается "элз"; переводится – "иначе")

Работает этот оператор так – сначала проверяется условие, и, если оно верно, выполняется оператор_1, в противном случае выполняется оператор_2.

В простейших случаях условие – это математическое сравнение двух выражений по величине, которое можно записать при помощи следующих знаков:

 

знак отношение
= равно
< меньше
<= меньше или равно
> больше
>= больше или равно
<> не равно

Задача 8.

Составить программу для следующей задачи: Компьютер должен перемножить два числа – 167 и 121. Если их произведение превышает 2000, то компьютер должен напечатать текст Произведение большое, иначе – текст Произведение маленькое. После этого компьютер в любом случае должен напечатать само произведение.

 

Программа.

 

VAR a,b,с: Integer;

BEGIN

a:=167;

b:=121;

c:=a*b;

If c>2000 then WriteLn(' Произведение большое ');

else WriteLn(' Произведение маленькое ');

WriteLn(с)

END.

Рассмотренная нами форма условного оператора называется полной, она позволяет направлять выполнение программы по одному из двух путей. Такую конструкцию называют ветвлением.

В Паскале есть и краткая форма условного оператора, которая просто позволяет выполнять заданный оператор, если выполнено условие:

If условие then оператор_1;

Если условие верно, то выполняется оператор_1, иначе выполняться будет следующий за условным оператор.

Задача 9.

Составить программу для следующей задачи: В компьютер вводится слово. Компьютер должен просто распечатать его. Однако, если введённым словом будет " колхозник ", то компьютер должен вместо него напечатать слово " фермер ".

 

Решение.

VAR a: String;

BEGIN

ReadLn(a);

If a='колхозник' then a:='фермер';

WriteLn(a)

END.

 


Составной оператор.

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

begin

оператор_1

оператор_2

.

.

оператор_n

end;

Зарезервированные слова Begin и End называются операторными скобками. Между ними может быть сколько угодно других операторов, но считается всё это одним составным оператором.

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

 

Задача 10.

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

 

Программа.

VAR otvet: String;

a,b: Integer;

BEGIN

WriteLN(' Чем займемся – сложением или возведением в квадрат?');

ReadLn(Otvet);

If Otvet='сложением' then

begin

Writeln('Введите два числа');

ReadLn(a,b);

WriteLn('Сумма равна',a+b)

end

else

begin

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

ReadLn(a);

WriteLn('Квадрат числа равен',a*a)

end

END.

 

 

Задача 11.

Составить программу для решения квадратного уравнения ax2+bx+c=0, где b не равно 0,

c не равно 0.

 

Программа.

 

Var a,b,c,x,x1,x2,D:real;

BEGIN

WriteLn('Введите a,b,c');

ReadLn(a,b,c);

D:=b*b-4*a*c;

if D<0 then WriteLn('корней нет')

else if D=0 then begin

x:=-b/(2*a);

WriteLn('x=',x:6:2)

end

else begin

x1:=(-b+Sqrt(D))/(2*a);

x2:=(-b-Sqrt(D))/(2*a);

WriteLn('x1=',x1:6:2);

WriteLn('x2=',x2:6:2)

end;

ReadLn

END.

 


Задача 12.

Составить программу для решения следующей задачи: В компьютер вводится число. Если оно находится в интервале от 28 до 30, то напечатать текст Попал, иначе – Не попал.

 

Программа.

 

VAR а: Real;

BEGIN

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

ReadLn(a);

If a>28 then If a<30 then WriteLn('Попал')

else WriteLn('Не попал');

else WriteLn('Не попал')

END.

 

На первый взгляд применение If внутри If создает громоздкую, трудную для понимания программу. Однако если аккуратно использовать ступенчатую запись, то программа получится достаточно обозримой.

Чтобы программа со вложенными друг в друга If была короче и понятнее, можно использовать только один If, применяя логические операции AND, OR и NOT.

 

 

AND (читается – "энд"; переводится – "и"), поставленный между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия.

Символьный тип данных.

VAR а,b: Char; (читается – "кэр", переводится – "символ")

Это описание означает, что переменные а и b имеют право принимать значения любых символов, имеющихся на клавиатуре. Например: а:='л'; b:='+';

При вводе нескольких символов одним оператором ReadLn все символы набираются на клавиатуре подряд без пробелов.

 

Задача 13.

Написать программу, переворачивающую любое трёхбуквенное слово, введённое человеком с клавиатуры.

 

Программа.

VAR a1,a2,a3: Char;

BEGIN

ReadLn(a1,a2,a3);

WriteLn(a3,a2,a1)

END.

 

Оператор выбора Case.

 

В Паскале есть специальный оператор, который позволяет выбрать одну из нескольких возможностей.

 

Этот оператор называется оператором выбора и имеет следующий вид:

case выражение of

список_значений_1: оператор_1;

список_значений_2: оператор_2;

список_значений_n: оператор_n;

else оператор;

end;

Здесь между зарезервированными словами case и of находится выражение, принимающее значение, которое может присутствовать в одном из списков значений, находящихся слева от двоеточий. Ветвь else, отвечающая всем неперечисленным значениям выражения, необязательна. При выполнении данного оператора вначале вычисляется значение выражения. Затем выбирается тот список значений, в котором находится полученное значение, и выполняется соответствующий ему оператор. Если значение выражения отсутствует в списках значений, ни один из вариантов выполняться не будет. В этом случае выполняется ветвь else оператора case или, если эта ветвь отсутствует, следующий за case оператор.

 

Замечание.

Переменная, стоящая после слова case, должна быть так называемого порядкового типа. Пока мы знаем 3 типа, относящихся к порядковым, - это Integer, LongInt и Char.

 

Задача 14.

Написать программу, спрашивающую у ученика его отметку и реагирующую на неё подходящим текстом.

 

Программа.

 

VAR otmetka: Integer;

BEGIN

WriteLn('Какую отметку ты получил сегодня?');

ReadLn(otmetka);

case otmetka of

1,2: WriteLn('Кошмар!');

3: WriteLn('Неважно');

4: WriteLn('Неплохо');

5: WriteLn('Отлично');

else WriteLn('Таких отметок не бывает');

end

END.

Замечание.

Конструкция 12..16 обозначает то же, что и 12, 13, 14, 15, 16 и называется диапазоном. Такая конструкция служит для сокращения записи.

 

 

 


Самостоятельная работа №3 по теме "Разветвляющиеся программы".

 

I ВАРИАНТ

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

 

  1. Написать программу, которая просит ввести с клавиатуры число x и выводит на экран результат b, который вычисляется по формуле:

 

 

-1

 

  1. Написать программу, которая просит ввести с клавиатуры номер дня недели и выводит на

экран сообщение о том, какой сегодня день – рабочий или выходной.

 

 

II ВАРИАНТ

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

минимальное из этих чисел.

 

 

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

результат c, который вычисляется по формуле:

 

- ,

 

 

3*. Написать программу, которая просит ввести с клавиатуры число, символ арифметического

действия (+,-,*,/) и еще одно число и выводит на экран результат полученного выражения.

 

 


 

 

 


Циклические программы.

 

Цикл представляет собой последовательность операторов, которая выполняется неоднократно.

В языке программирования Паскаль имеется три разновидности цикла:

 

v цикл с предусловием (цикл "пока" – while);

 

v цикл с постусловием (цикл "до тех пор, пока" – repeat…until);

 

v цикл со счётчиком (цикл "для" – for…to/downto);

 

Цикл с предусловием.

Цикл с предусловием имеет вид:

 

While условие do оператор;

(While: читается – "вайл"; переводится – "пока"; do: читается – "ду"; переводится – "делай".)

 

Работает оператор while так:

 

Сначала компьютер проверяет истинность условия, стоящего после слова while. Если условие истинно, то выполняется оператор, стоящий после do. Затем снова проверяется истинность условия и в случае истинности снова выполняется этот оператор и т.д. Если условие ложно, то оператор while прекращает свою работу и компьютер переходит к выполнению следующего оператора.

 

Оператор, стоящий после do называется телом цикла. Телом цикла может быть и составной оператор, т.е. группа операторов, заключённая в операторные скобки begin...end.

 

Задача 15.

Составить программу с использованием оператора while для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.

 

Программа.

Var a:Real;

BEGIN

a:=900;

while a>=0 do begin

WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);

a:=a-3;

end;

ReadLn

END.

 

Цикл с постусловием.

Цикл с постусловием имеет вид:

 

Repeat оператор, оператор, …, оператор Until условие;

(Repeat Until условие: читается – "ри'пит…ан'тил"; переводится – "повторяй… до тех пор, пока не выполняется условие.)

 

Работает оператор repeat так:

 

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

 

 

Задача 16.

Составить программу с использованием оператора repeat для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.

 

Программа.

Var a:Real;

BEGIN

a:=900;

repeat

WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);

a:=a-3;

until a<0;

ReadLn

END.

 

Цикл со счётчиком.

 

Цикл со счётчиком имеет следующий вид:

 

For имя := выражение_1 to выражение_2 do оператор;

имя – это имя произвольной переменной порядкового типа, называемой переменной цикла (или его счётчиком);

выражение_1 и выражение_2 – это произвольные выражения порядкового типа.

(For: читается – "фо"; переводится – "для"; to: читается – "ту"; переводится – "до"; do: читается – "ду"; переводится – "делай".)

 

Конструкция For i:=1 to 200 do... переводится так: для i, изменяющегося от 1 до 200, делай оператор, стоящий после слова do.

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

Оператор, стоящий после do может быть и составным.

 

Работает оператор For так:

Прежде всего вычисляется выражение_1, и переменной цикла (пусть это будет i) присваивается его значение. Затем вычисляется выражение_2 и сравнивается с i. Если i > выражение_2, то оператор For завершает свою работу, так ничего и не сделав. В противном случае выполняется оператор, стоящий после do. После выполнения этого оператора значение i увеличивается на единицу и снова сравнивается с выражение_2. Если i > выражение_2, то оператор For завершает свою работу, иначе снова выполняется оператор, стоящий после do, снова значение i

увеличивается на единицу и т.д.

 

 

Оператор For позволяет не только увеличивать, но и уменьшать переменную цикла. Для этого вместо to нужно писать downto.

(читается – "даунту"; переводится – "вниз до".)

 

Задача 17.

Написать программу с использованием оператора For, которая печатает на экране:

Прямой счёт:-4 –3 –2 –1 0 1 2 3 4 Обратный счёт:4 3 2 1 0 –1 –2 –3 –4 Конец счёта.

 

Программа.

 

Var i:Integer;

BEGIN

Write('Прямой счёт:');

For i:=-4 to 4 do Write(i,' ');

Write('Обратный счёт:');

For i:=4 to -4 downto Write(i,' ');

Write('Конец счёта.');

ReadLn;

END.

Задача.

Во дворце N залов. Известны длина и ширина каждого зала. Вычислить площадь пола каждого зала.

Программа.

Var i,dlina,shirina,N,S:Integer;

BEGIN

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

ReadLn(N);

For i:=1 to N do begin

WriteLn('Ведите длину и ширину зала');

ReadLn(dlina,shirina);

S:= dlina*shirina;

WriteLn('Площадь пола=',S)

end

END.

 

 

 
 


Счётчики.

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

 

Задача.

В компьютер вводится 200 чисел. Компьютер должен подсчитать и напечатать, сколько среди них положительных.

Решение.

Введём переменную i, которая будет выполнять роль счётчика положительных чисел. Оператор с:=с+1 в нужный момент увеличивает значение счётчика на единицу. Увеличение с на единицу выполняется лишь при выполнении условия: а>0, где а – вводимое число. Счётчик перед входом в цикл необходимо обнулять, иначе он начнёт считать не с нуля.

 

VAR c,i:Integer;

a:Real;

BEGIN

c:=0;

For i:=1 to 200 do begin

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

ReadLn(a);

If a>0 then c:=c+1

end;

WriteLn('Из них положительных – ',c)

END.

 

Сумматоры

 

Сумматор – это переменная величина, в которой подсчитывается сумма чего – либо.

 

Задача.

Во дворце N залов. Известны длина и ширина каждого зала. Вычислить площадь пола всего дворца.

 

Решение.

Введём переменную Sum, которая будет выполнять роль сумматора. Оператор Sum:=Sum+S каждый раз увеличивает значение сумматора на величину S, т.е. в ячейке Sum накапливается сумма вычисленных площадей отдельных залов. Сумматор перед входом в цикл тоже необходимо обнулять, иначе он начнёт считать не с нуля.

Var i,dlina,shirina,N,S,Sum:Integer;

BEGIN

Sum:=0;

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

ReadLn(N);

For i:=1 to N do begin

WriteLn('Ведите длину и ширину зала');

ReadLn(dlina,shirina);

S:= dlina*shirina;

Sum:=Sum+S

end;

WriteLn('Площадь пола всего дворца=',Sum);

ReadLn

END.

 

Задача.

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

 

Решение.

Приготовим для самого максимального числа ячейку и назовём её max. Первое число не глядя введём в эту ячейку. Каждое следующее число (назовём его x) будем сравнивать с max. Если оно больше, то присвоим переменной max значение этого числа.

Var i,x,max:Integer;

BEGIN

WriteLn('Введите первое число ');

ReadLn(max);

For i:=2 to 10 do begin

WriteLn('Введите следующее число');

ReadLn(x);

If x>max then max:=x

end;

WriteLn('Максимальное число: ',max);

ReadLn

END.

 

 


Оператор GOTO.

GOTO m1 - оператор перехода (читается – "гоуту"; переводится – "иди к".); m1 – метка.

Метка – это произвольное имя или произвольное целое положительное число. Оператор GOTO можно писать в любых местах программы, и метку можно ставить перед любым оператором, заставляя компьютер таким образом перескакивать в программе откуда угодно и куда угодно (правда, в сложных программах эта свобода перескакивания существенно ограничивается). Метка должна отделяться от оператора двоеточием.

Метки, встречающиеся в программе, должны быть описаны выше BEGIN после слова LABEL(читается – "лэйбл"; переводится – "метка").

Используя оператор GOTO, можно составлять циклические программы.

Задача.

Написать программу, которая бесконечно печатает букву А.

Программа.

LABEL m1;

BEGIN

m1: Write('A');

ReadLn;

GOTO m1

END.

Задача.

При помощи цикла напечатать на экране: 3 5 7 9

Программа.

LABEL m1;

VAR f:Integer;

BEGIN

f:=3;

m1: Write(f,' ');

f:=f+2;

If f<=9 then GOTO m1;

ReadLn;

END.


 
 

 


Графика.

Стандартные модули.

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

Модуль СRТ занимается звуком.

Модуль Graph позволяет работать с изображениями на экране.

Чтобы использовать в программе тот или иной стандартный модуль, нужно записать первой строкой своей программы: USES <имя модуля> (читается "юзез", переводится – "использует").

 

Mодуль Graph.

(читается – "граф", переводится – "графика")

С помощью модуля Graph можно нарисовать причудливые картинки и заставить изображения двигаться по экрану.

 

Замечание

При переключении режимов всё содержимое экрана стирается.

 

 
 

 

 


Рисование простейших фигур.

В компьютере применяется такая система координат:

 
 


x

 

y

Отличия графической системы координат от декартовой:

ü Графические координаты принимают только целочисленные значения.

ü Графические координаты принимают значения, ограниченные как снизу (нулевым значением), так и сверху (значением разрешения).

ü Графическая координата отсчитывается сверху вниз.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 250; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.147.252 (0.622 с.)