Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


П3. Список некоторых операций, процедур и функций Паскаля



Приведу список большинства пройденных нами операций и стандартных процедур и функций с указанием типа их параметров (или по-другому – аргументов и результата)

 

Математика

Sqr (A) аргумент A – любого числового типа, результат - того же типа, что и A

Sqrt (A) аргумент A – любого числового типа, результат - того же типа, что и A

Pi значение - вещественное

Frac (A) аргумент A и результат - вещественные

Int (A) аргумент A и результат - вещественные

Round (A) аргумент A вещественный, результат - LongInt

Abs (A) аргумент A – любого числового типа, результат - того же типа, что и A

Random результат - вещественный

Random (A) аргумент A и результат - Word

Randomize процедура

 

A div B операнды A и B и результат операции div - только целочисленного типа

A mod B операнды A и B и результат операции mod - только целочисленного типа

 

Модуль CRT

Процедура или функция Смысл

Sound (A: Word) звук

NoSound нет звука

Delay (A: Word) отсрочка

ReadKey: Char читай клавишу

KeyPressed: Boolean клавиша нажата

TextColor (A: Byte) цвет текста

TextBackground (A: Byte) цвет фона

ClrScr очистка экрана

GotoXY (X, Y: Byte) иди к икс игрек

 

Модуль Graph

 

InitGraph (d, m: Integer; path: String) инициализация графики

CloseGraph закрытие графики

 

PutPixel (x, y: Integer; color: Word) поставь пиксел

GetPixel (x, y: Integer): Word получи пиксел

Line(x1, y1, x2, y2: Integer) отрезок прямой линии

Rectangle (x1, y1, x2, y2: Integer) прямоугольник

Bar (x1, y1, x2, y2: Integer) залитый прямоугольник

Bar3D (x1, y1, x2, y2: Integer; tol: Word; top: Boolean) параллелепипед

Circle (x, y: Integer; r: Word) окружность

Arc (x, y: Integer; fi1, fi2, r: Word) дуга окружности

PieSlice (x, y: Integer; fi1, fi2, r: Word) кусок пирога (залитый сектор круга)

Ellipse (x, y: Integer; fi1, fi2, rx, ry: Word) эллипс

Sector (x, y: Integer; fi1, fi2, rx, ry: Word) залитый сектор эллипса

FillEllipse (x, y: Integer; rx, ry: Word) залитый эллипс

 

SetColor (color: Word) установить цвет линий

SetLineStile (ls, uzor, tolsh: Word) установить стиль линий

SetFillStyle(uzor, color: Word) установить стиль заливки

FloodFill(x, y: Integer; granitsa: Word) заливка

 

GetMaxX: Integer получи максимальный икс

GetMaxY: Integer получи максимальный игрек

 

GetImage (x1, y1, x2, y2: Integer; var A[12]) получи изображение

PutImage (x1, y1: Integer; var A; mode: Word) помести изображение

ImageSize (x1, y1, x2, y2: Integer) размер изображения

 

OutTextXY (x, y: Integer; stroka: String) вывод текста

SetTextStyle (shrift, napravl, razmer: Word) установи стиль текста

SetUserCharSize (A, B, C, D: Word) установи пользовательский размер символов

Модуль DOS

GetTime (var chas, min, sec, sotki: Word) получи время

SetTime (chas, min, sec, sotki: Word) установи время

GetDate (var god, mes, den, dennedeli: Word) получи дату

SetDate (god, mes, den: Word) установи дату

Работа со строками

Pos (s1, s: String): Byte позиция

Length (s: String): Byte длина

Copy (s: String; a, b: Integer): String копируй

Delete (var s: String; a, b: Integer) удаляй

Insert (var s: String; s1: String; a: Integer) вставляй

Работа с файлами

Assign (var f: Text; filename: String) упрощенно присвоить

Rewrite (var f: Text) упрощенно переписать

Reset (var f: Text) упрощенно переустановить

Close (var f: Text) упрощенно закрыть

Append (var f: Text) добавить

Прочие

Chr (A: Byte): Char символ

GetMem(P: Pointer; razmer: Word) выдели память

New (var p: Pointer) новый

П4. Произношение английских слов

Здесь приведена транскрипция всех английских слов, встречающихся в тексте, кроме самых простых, таких как in. Кроме транскрипции произношение английских слов мне пришлось привести еще и русскими буквами, во-первых потому, что не все разбираются в значках транскрипции, а во-вторых потому, что многие аббревиатуры в среде русскоязычных программистов принято произносить на латинском или на смеси английского с латинским. Значок ударения в русском произношении я по техническим причинам ставил не над гласной буквой, как принято в России, а перед ударным слогом.


Слово Транс-крипция Обычное произношение
Add watch   Эд’воч
Alt   Альт
AND   Энд
Append   Э’пенд
array   Э’рэй
Assign   Э’сайн
BackSpace   Бэк’спэйс
Bar3D   Бартри’дэ
Begin   Би’гин
Boolean   ‘Булиэн
Byte   Байт
CapsLock   Капс’лок
case   Кэйс
Char   Кэр
Chr   Сиэйч’а
Circle   Сёкл
ClearDevice   Клиэди’вайс
Close   ‘Клоуз
CloseGraph   Клоуз’граф
ClrScr   Клиэ’скрин
Compile   Ком’пайл
Copy   ‘Копи
CRT   Цээр’тэ
Ctrl   ‘Контрол
Cut   Кат
Debug   Ди’баг
Delay   Ди’лэй
Delete   Ди’лит
DirectVideo   Директ’видео
do   Ду
Double   Дабл
downto   ‘Даунту
Edit   ‘Эдит
Ellipse   Эллипс
else   Элз
End   Энд
EOF   Энд оф ‘файл
exe   ‘Экзе
Exit   ‘Эксит
Extended   Икс’тендед
false   Фолс
File   Файл
FillEllipse   Фил’эллипс
FloodFill   Флад’фил
for   Фо
Forward   ‘Форвард
Frac   Фрак
GetDate   Гэт’дэйт
GetImage   Гэт’имэдж
GetMaxX   Гэтмакс’икс
GetMaxY   Гэтмакс’игрек
GetMem   Гэт’мэм
GetPixel   Гэт’пиксел
GetTime   Гэт’тайм
goto   ‘Гоуту
Goto cursor   Гоуту’курсор
GotoXY   Гоутуикс’игрек
Graph   Граф
Halt   Хальт
if   Иф
ImageSize   ‘Имэджсайз
IMPLEMENTATION   Имплемен’тэйшн
InitGraph   ‘Инитграф
Insert   Ин’сёт
Integer   ‘Интеджер
KeyPressed   Ки’пресд
LABEL   Лэйбл
Length   Ленгс
Line   Лайн
LongInt   Лонг’инт
New   Нью
NormWidth   Норм’видс
NoSound   Ноу’саунд
of   Эв
Open   ‘Опен
OR   О
Output   Аутпут
OutTextXY   Ауттекстикс’игрек
Paste   Пэйст
PC Speaker   Писи’спикер
PieSlice   Пай’слайс
Pos   По’зишн
PROCEDURE   Про’сиджэ
PROGRAM   ‘Програм
PutImage   Пут’имэдж
PutPixel   Пут’пиксел
Random   ‘Рэндом
Randomize   Рэндо’майз
Read   Рид
ReadKey   Рид’ки
ReadLn   Рид’лайн
Real   ‘Риэл
record   Рекорд
Rectangle   Рек’тангл
repeat   Ри’пит
Reset   Ри’сет
Rewrite   Ри’райт
Round   ‘Раунд
Run   Ран
Save   Сэйв
Save as   Сэйв’эз
SetColor   Сет’колор
SetDate   Сет’дэйт
SetFillStyle   Сетфил’стайл
SetLineStyle   Сетлайн’стайл
SetTextStyle   Сеттекст’стайл
SetTime   Сет’тайм
SetUserCharSize   Сет юзеркэр’сайз
Shift   Шифт
ShortInt   Шорт’инт
Single   Сингл
Sound   ‘Саунд
Sqr   ‘Сквэар
Sqrt   Сквэа’рут
String   Стринг
Succ   Сэ’ксэссор
Text   Текст
TextBackgrownd   Текстбэк’граунд
TextColor   Текст’колор
then   Зэн
ThickWidth   Сик’видс
to   Ту
TopOff   Топ’оф
TopOn   Топ’он
Trace into   Трэйс’инту
true   Тру
TYPE   Тайп
UNIT   ‘Юнит
until   Ан’тил
User Screen   Юзер’скрин
Uses   ‘Юэеэ
Watch   Воч
while   Вайл
Word   Ворд
Write   Райт
WriteLn   Райт’лайн

 

 


 

П5. Решения заданий

Задание 1

 

Программа для робота Пояснения для нас с вами
1. ПОВТОРИ 5 РАЗ ШАГ ВПЕРЕД Робот идет по коридору до дверей
2. НАЛЕВО Робот поворачивается лицом к дверям
3. ПОВТОРИ 3 РАЗА ШАГ ВПЕРЕД Робот подходит к стулу
4. ВОЗЬМИ ПРЕДМЕТ Робот берет стул
5. ПОВТОРИ 2 РАЗА НАЛЕВО Робот поворачивается кругом
6. ПОВТОРИ 3 РАЗА ШАГ ВПЕРЕД Робот выходит в коридор
7. НАПРАВО Поворачивается направо
8. ПОВТОРИ 5 РАЗ ШАГ ВПЕРЕД Идет по коридору до исходного положения
9. ОПУСТИ ПРЕДМЕТ Робот ставит стул на новое место

 

Задание 2

+ =

 

Задание 3

 

                    М ы   н а ч и н а е м !                    
                                                                   
                                                                       
Ш е с т ь ю   ш е с т ь         .     А р и ф м е т и к а :    

 

Задание 4 0

 

Задание 5

VAR a, b: LongInt;

BEGIN

a: = 9000000;

b: = 1000;

WriteLn (a-b);

ReadLn

END.

 

Задание 6 Паскаль выдает сообщение об ошибке: Constant out of range (см. сообщения об ошибках в части IV).

Задание 7 Паскаль выдает результат 211 или другой неправильный.

Задание 8 1001

Задание 9 -100

Задание 10 15 -10

Задание 11 82

Задание 12

VAR dlina_dvora, dlina_doma,

shirina_dvora, shirina_doma,

pl_dvora, pl_doma,

svobodn_pl_dvora, dlina_zabora: Integer;

BEGIN

dlina_dvora: =50; dlina_doma: =20;

shirina_dvora: =30; shirina_doma: =10;

 

pl_dvora: = dlina_dvora * shirina_dvora;

pl_doma: = dlina_doma * shirina_doma;

svobodn_pl_dvora: = pl_dvora - pl_doma;

dlina_zabora: = 2*(dlina_dvora+shirina_dvora)-(dlina_doma+shirina_doma);

 

WriteLn (pl_doma, ' ', svobodn_pl_dvora, ' ', dlina_zabora);

ReadLn

END.

 

Задание 13

VAR r: Integer; {r-радиус окружности}

l, s: Real; {l-длина окружности, s-площадь круга}

BEGIN

r: = 800;

l: = 2 * pi * r;

s: = pi * r * r;

WriteLn (l: 15: 5, ' ', s: 15: 5);

ReadLn

END.

 

Задание 14

VAR t1, t2, {t1-время на первом отрезке, t2-на втором}

v1, v2, {v1-скорость на первом отрезке, v2-на втором}

s1, s2: Integer; {s1-первый отрезок пути, s2-второй}

sredn_skorost: Real;

BEGIN

t1: =3; t2: =2;

v1: =80; v2: =90;

s1: =v1*t1; {путь равен скорость умножить на время}

s2: =v2*t2;

sredn_skorost: = (s1+s2)/(t1+t2);

WriteLn (sredn_skorost: 10: 3);

ReadLn

END.

 

Задание 15

VAR a, b, c, perimetr: Integer; {a, b, c - стороны треугольника}

BEGIN

a: =20;

WriteLn ('Введите длины двух сторон треугольника');

ReadLn(b, c);

perimetr: = a+b+c; {периметр - это сумма сторон}

WriteLn ('Периметр треугольника равен ', perimetr);

ReadLn

END.

 

Задание 16

VAR t, v, s: Real; {t-время, v-скорость, s-путь}

BEGIN

WriteLn ('Введите путь в метрах и скорость в м/с');

ReadLn(s, v);

t: =s/v;

WriteLn ('Время = ', t: 6: 3, ' сек');

ReadLn

END.

 

Задание 17

VAR r1, r2, {r1-радиус орбиты первой планеты, r2-второй}

v1, v2, {v1-скорость первой планеты, v2-второй}

t1, t2: Real; {t1-продолжительность года первой планеты, t2-второй}

nazvanie1, nazvanie2: String;

BEGIN

WriteLn('Введите название первой планеты');

ReadLn(nazvanie1);

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

ReadLn(r1, v1);

WriteLn('Введите название второй планеты');

ReadLn(nazvanie2);

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

ReadLn(r2, v2);

t1: = 2*pi*r1/v1; {время = длина орбиты/скорость, а длина}

t2: = 2*pi*r2/v2; {орбиты равна два пи * радиус}

WriteLn ('Продолжительность года на планете ', nazvanie1, ' - ', t1: 3: 0,

' сут., а на планете ', nazvanie2, ' - ', t2: 3: 0, ' сут.');

ReadLn

END.

 

Задание 18 8

Задание 19 29

Задание 20 66

Задание 21

VAR a1, a2: Integer;

BEGIN

ReadLn (a1, a2);

if a1> a2 then WriteLn (a1+a2)

else WriteLn (a1*a2);

WriteLn('ЗАДАЧА РЕШЕНА');

ReadLn

END.

 

Задание 22

VAR a, b, c: Integer;

BEGIN

ReadLn (a, b, c);

if a< b+c then WriteLn ('Подходит.')

else WriteLn ('Не подходит, слишком длинен.');

ReadLn

END.

 

Задание 23

VAR golov, glaz, N: Integer;

BEGIN

WriteLn ('Сколько лет дракону? ');

ReadLn (N);

if N< 100 then golov: = 3*N

else golov: = 300 + 2*(N-100);

glaz: = 2*golov;

WriteLn ('У дракона ', golov, ' голов и ', glaz, ' глаз');

ReadLn

END.

 

Задание 24

VAR imya: String;

Vozrast: Integer;

BEGIN

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

ReadLn (imya);

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

ReadLn (vozrast);

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

if vozrast< =17 then begin

WriteLn ('В какой школе ты учишься? ');

ReadLn; {Во время паузы вы можете вводить любой текст,

все равно он программе не понадобится}

WriteLn ('Неплохая школа! ')

End

Else begin

WriteLn ('В каком институте ты учишься? ');

ReadLn;

WriteLn ('Хороший институт! ')

end;

WriteLn ('До следующей встречи! ');

ReadLn

END.

 

Задание 25

VAR a, b, c: Integer;

BEGIN

ReadLn (a, b, c);

if a> =b+c then WriteLn ('Неправда')

else if b> =a+c then WriteLn ('Неправда')

else if c> =a+b then WriteLn ('Неправда')

else WriteLn ('Правда');

ReadLn

END.

 

Задание 26 Ей нравятся любые черноглазые, но только не те, у кого рост находится в диапазоне от 180 до 184.

 

Задание 27

VAR a, b: String; {a-ПРИВЕТСТВИЕ ЧЕЛОВЕКА, b-ОТВЕТ КОМПЬЮТЕРА}

BEGIN

ReadLn (a);

if a='Здравия желаю' then b: ='Вольно';

if a='Здорово' then b: ='Здравствуйте';

if (a='Добрый день')OR(a='Приветик')OR(a='Салют') then b: ='Салют';

if (a='Привет')OR(a='Здравствуйте') then b: =a;

WriteLn (b, '! ');

ReadLn

END.

 

 

Задание 28

VAR bukva: Char;

BEGIN

WriteLn ('Введи строчную букву русского алфавита');

ReadLn (bukva);

case bukva of

'а', 'е', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я': WriteLn('гласная');

'б', 'з', 'в', 'г', 'д', 'ж': WriteLn('согласная звонкая');

'п', 'с', 'ф', 'к', 'т', 'ш': WriteLn('согласная глухая');

'й', 'л', 'м', 'н', 'р', 'х', 'ц', 'ч', 'щ', 'ъ', 'ь': WriteLn('другая');

else WriteLn('Таких букв не знаю')

end;

ReadLn

END.

 

Задание 29

VAR a, b, rez: Real; {a и b - два числа, rez-результат}

Oper: Char; {oper - знак арифметического действия}

BEGIN

ReadLn (a);

ReadLn (oper);

ReadLn (b);

case oper of

'+': rez: =a+b;

'-': rez: =a-b;

'*': rez: =a*b;

'/': rez: =a/b;

else WriteLn('Таких действий не знаю')

end;

WriteLn(rez: 11: 8);

ReadLn

END.

 

Задание 30 Эта программа будет печатать:

Считаем зайцев
10 зайцев

10 зайцев

11 зайцев

13 зайцев

16 зайцев

20 зайцев

………

Операторы n: =n+1 и WriteLn('Посчитали зайцев') не будут выполнены никогда.

 

Задание 31

LABEL m1; BEGIN m1: Write ('A'); ReadLn; goto m1 END.

 

Задание 32

LABEL m1;

VAR i: LongInt;

BEGIN

i: =1000;

m1: Write (i, ' ');

ReadLn;

i: =i-1;

goto m1

END.

 

Задание 33

LABEL m1;

VAR a: Real;

BEGIN

a: =100;

m1: Write (a: 12: 8, ' ');

ReadLn;

a: =a/2;

goto m1

END.

 

Задание 34

LABEL m1, m2;

VAR i: LongInt;

BEGIN

i: =1;

m1: Write (i, ' ');

i: =i+1;

if i< 100 then goto m1;

 

m2: Write (i, ' ');

i: =i-1;

if i> =1 then goto m2;

ReadLn

END.

 

Задание 35

LABEL m;

VAR a: Real;

BEGIN

a: =0;

m: WriteLn (a: 5: 3, ' ', a*a: 9: 6);

a: =a+0.001;

if a< =1.00001 then goto m;

ReadLn

END.

Пояснение: Вместо if a< =1 then я написал if a< =1.00001 then и вот по какой причине. Вещественные числа компьютер складывает с незначительной погрешностью, но ее достаточно, чтобы при тысячекратном прибавлении 0.001 набралась не 1, а чуть-чуть больше. А это значит, что счет остановился бы на 0.999. Если не верите, попробуйте распечатывать а с 15 знаками после точки. Подробнее о причинах – см. 12.2

 

Задание 36

LABEL m1, m2;

VAR x, y, z: Real;

BEGIN

x: =2700;

m1: y: =x/4 + 20;

z: =2*y+0.23;

WriteLn ('x=', x: 12: 6, ' y=', y: 12: 6, ' z=', z: 12: 6);

if y*z< 1/x then goto m2;

x: =x/3;

goto m1;

m2: ReadLn

END.

 

Задание 37

VAR Slovo: String;

Nomer: Integer;

BEGIN

Nomer: =1;

Repeat

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

ReadLn(Slovo);

WriteLn(Nomer, ' ', Slovo, '! ');

Nomer: =Nomer+1;

until Slovo='Хватит';

WriteLn('Хватит так хватит');

ReadLn

END.

 

Задание 38

VAR a: Real;

BEGIN

a: =0;

Repeat

WriteLn (a: 5: 3, ' ', a*a: 9: 6);

a: =a+0.001;

until a> 1.00001;

ReadLn

END.

 

Задание 39

VAR x, y, z: Real;

BEGIN

x: =8100;

Repeat

x: =x/3;

y: =x/4 + 20;

z: =2*y+0.23;

WriteLn ('x=', x: 12: 6, ' y=', y: 12: 6, ' z=', z: 12: 6);

until y*z< 1/x;

ReadLn

END.

Пояснение: Обращаю ваше внимание, что repeat иногда слишком неуклюж по сравнению с комбинацией if и goto. Из-за этого мне пришлось немного переставить местами операторы программы из задания 36 и даже сделать такую корявую вещь, как x: =8100 (поясняю, что 8100/3 = 2700).

 

Задание 40

VAR t, s, h, v: Real;

BEGIN

v: =20;

t: =0;

Repeat

s: = v*t;

h: = 100-9.81*t*t/2;

WriteLn('t=', t: 5: 1, ' s=', s: 8: 2, ' h=', h: 6: 2);

t: =t+0.2;

until h< =0; {Отрицательная высота - значит упал на землю}

ReadLn

END.

 

Задание 41

VAR a: Real;

BEGIN

a: =900;

while a> =0 do begin {Из отрицательных чисел корни компьютер не вычисляет}

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

a: =a-3;

end;

ReadLn

END.

 

Задание 42

VAR i: Integer;

BEGIN

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

for i: = -5 to 5 do Write(i, ' ');

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

for i: = 5 downto -5 do Write(i, ' ');

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

ReadLn

END.

 

Задание 43

VAR i, N, a: Integer;

BEGIN

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

ReadLn (N);

for i: =1 to N do begin

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

ReadLn (a);

WriteLn('Объем кубика=', a*a*a)

end;

ReadLn

END.

 

Задание 44 Компьютер напечатает:

Площадь пола=300 Объем зала=1200

Площадь пола=300 Объем зала=1200

Площадь пола=300 Объем зала=1200

и не спросит размеры 2 и 3 залов.

 

Задание 45 Компьютер напечатает результаты только для последнего зала.

 

Задание 46 Компьютер напечатает результат:

на 10 больше правильного.

в два раза больше правильного.

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

0 или 1, так как на каждом цикле счетчик будет обнуляться.

200 или 0 в зависимости от того, положительно первое число или нет.

 

Задание 47

VAR i, a, N, c_pol, c_otr, c_10: Integer;

BEGIN

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

ReadLn (N);

c_pol: =0; c_otr: =0; c_10: =0; {Обнуляем счетчики}

for i: =1 to N do begin

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

ReadLn (a);

if a> 0 then c_pol: =c_pol+1; {Подсчитываем положительные}

if a< 0 then c_otr: =c_otr+1; {Подсчитываем отрицательные}

if a> 10 then c_10: =c_10 +1; {Подсчитываем превышающие 10}

end {for};

WriteLn('Положит - ', c_pol, ' Отрицат - ', c_otr, ' Больших 10 - ', c_10);

ReadLn

END.

 

 

Задание 48

VAR a, b, c: Integer;

BEGIN

c: =0; {Обнуляем счетчик}

Repeat

ReadLn (a, b); {Ввод пары чисел}

if a+b=13 then c: =c+1;

until (a=0) AND (b=0); {пока не введена пара нулей}

WriteLn(c);

ReadLn

END.

 

Задание 49

5 и 8

Задание 50

VAR i, dlina, shirina, S, sum: Integer;

BEGIN sum: =0;

for i: =1 to 40 do begin

ReadLn (dlina, shirina);

S: =dlina*shirina; {S-площадь зала}

sum: =sum+S {sum-площадь дворца}

end {for};

WriteLn(sum);

ReadLn

END.

 

Задание 51

VAR i, ball, N, S: Integer;

BEGIN

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

ReadLn (N);

S: =0;

for i: =1 to N do begin

WriteLn('Введите балл ученика');

ReadLn (ball);

S: =S+ball;

end;

WriteLn('Средний балл =', S/N: 8: 3);

ReadLn

END.

 

Задание 52

VAR i, N: Integer;

a, proizvedenie: Real;

BEGIN

WriteLn('Введите количество сомножителей');

ReadLn (N);

proizvedenie: =1; {Сумму обнуляем, произведение - нет! }

for i: =1 to N do begin

WriteLn('Введите сомножитель');

ReadLn (a);

proizvedenie: = proizvedenie * a; {Наращиваем произведение}

end;

WriteLn('Произведение =', proizvedenie: 12: 3);

ReadLn

END.

 

Задание 53

VAR perv, vtor: Integer; {пеpвая и втоpая цифpы}

BEGIN

for perv: =3 to 8 do for vtor: =0 to 7 do Write(perv, vtor, ' ');

ReadLn

END.

 

Задание 54

VAR i, j, k, l: Integer; {четыpе цифpы}

BEGIN

for i: =1 to 3 do

for j: =1 to 3 do

for k: =1 to 3 do

for l: =1 to 3 do

Write(i, j, k, l, ' ');

ReadLn

END.

 

Задание 55

VAR i, j, k, l, c: Integer; {c-счетчик}

BEGIN

c: =0; {Обнуляем счетчик}

for i: =1 to 3 do for j: =1 to 3 do for k: =1 to 3 do for l: =1 to 3 do c: =c+1;

Write('Количество сочетаний = ', c);

ReadLn

END.

 

Задание 56

VAR i, j, k, l, c: Integer; {c-счетчик}

BEGIN

c: =0; {Обнуляем счетчик}

for i: =1 to 3 do

for j: =1 to 3 do

for k: =1 to 3 do

for l: =1 to 3 do

if (i< =j) AND (j< =k) AND (k< =l) then c: =c+1;

WriteLn('Количество неубывающих сочетаний = ', c);

ReadLn

END.

 

Задание 57

VAR i, N, chislo, min, nomer: Integer;

BEGIN

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

ReadLn (N); {N - количество чисел}

ReadLn(min); {первое число считаем минимальным}

nomer: =1; {его номеp - пеpвый}

for i: =2 to N do begin {Пpосматpиваем остальные числа}

ReadLn(chislo);

if chislo< min then begin {Если число меньше минимального, то}

min: =chislo; {оно становится минимальным}

nomer: =i; {запоминаем номеp минимального числа}

end {if};

end {for};

WriteLn(min, ' ', nomer);

ReadLn

END.

 

Задание 58

VAR i, N, rost, min, max: Integer;

BEGIN

WriteLn('Сколько человек в классе? ');

ReadLn (N);

max: =0; {Ясно, что pоста меньше 0 см не бывает}

min: =500; {Ясно, что pоста больше 500 см не бывает}

for i: =1 to N do begin {Пpосматpиваем все числа}

WriteLn('Введите pост ученика');

ReadLn(rost);

if rost< min then min: =rost;

if rost> max then max: =rost

end{for};

if max-min> 40 then WriteLn('Пpавда') else WriteLn('Hепpавда');

ReadLn

END.

 

Задание 60

USES CRT;

VAR hz, i: Integer;

BEGIN

for i: =1 to 3 do begin {Повтоpить тpи pаза звук сиpены}

hz: =60;

while hz< 800 do begin {Звук ввеpх}

Sound(hz); Delay(50);

hz: =hz+5

end;

while hz> 60 do begin {Звук вниз}

Sound(hz); Delay(50);

hz: =hz-5

end;

end{for};

NoSound

END.

 

Задание 61

USES CRT;

VAR hz, i: Integer;

BEGIN

for i: =1 to 30 do begin

Sound(60);

Delay(50);

Sound(400);

Delay(50);

end{for};

NoSound

END.

 

Задание 62

USES CRT;

VAR hz: Integer;

BEGIN

hz: =1000;

while hz< 20000 do begin

WriteLn('Частота звука - ', hz, ' геpц. Жмите кл.ввода до 20000 гц.');

Sound(hz);

ReadLn;

hz: =hz+500

end;

NoSound

END.

 

Задание 64

USES CRT;

PROCEDURE doo; BEGIN Sound(523); Delay(500); NoSound; Delay(20) END;

PROCEDURE re; BEGIN Sound(587); Delay(500); NoSound; Delay(20) END;

PROCEDURE mi; BEGIN Sound(659); Delay(500); NoSound; Delay(20) END;

PROCEDURE fa; BEGIN Sound(698); Delay(500); NoSound; Delay(20) END;

PROCEDURE sol; BEGIN Sound(784); Delay(500); NoSound; Delay(20) END;

PROCEDURE la; BEGIN Sound(880); Delay(500); NoSound; Delay(20) END;

PROCEDURE si; BEGIN Sound(988); Delay(500); NoSound; Delay(20) END;

{500 - пpодолжительность звука, 20 - пауза между нотами}

BEGIN

mi; doo; mi; doo; fa; mi; re; sol; sol; la; si; doo; doo; doo

END.

 

Задание 65

USES CRT;

PROCEDURE doo; BEGIN Sound(523); Delay(500); NoSound; Delay(20) END;

PROCEDURE re; BEGIN Sound(587); Delay(500); NoSound; Delay(20) END;

PROCEDURE mi; BEGIN Sound(659); Delay(500); NoSound; Delay(20) END;

PROCEDURE fa; BEGIN Sound(698); Delay(500); NoSound; Delay(20) END;

PROCEDURE sol; BEGIN Sound(784); Delay(500); NoSound; Delay(20) END;

PROCEDURE la; BEGIN Sound(880); Delay(500); NoSound; Delay(20) END;

PROCEDURE si; BEGIN Sound(988); Delay(500); NoSound; Delay(20) END;

PROCEDURE chijik;

BEGIN mi; doo; mi; doo; fa; mi; re; sol; sol; la; si; doo; doo; doo END;

BEGIN

WriteLn('Песня " Чижик-пыжик" . 1 куплет');

chijik;

WriteLn('2 куплет');

chijik;

END.

 

Задание 66

Я, король Франции, спрашиваю вас - кто вы такие? Вот ты - кто такой?

Я - Атос

А ты, толстяк, кто такой?

А я Портос! Я правильно говорю, Арамис?

Это так же верно, как то, что я -Арамис!

Он не врет, ваше величество! Я Портос, а он Арамис.

А ты что отмалчиваешься, усатый?

А я все думаю, ваше величество - куда девались подвески королевы?

Анна! Иди-ка сюда!!!

 

Задание 67

USES Graph;

VAR Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

Rectangle(300, 30, 360, 80); {шапка}

Circle(330, 120, 40); {голова}

Circle(345, 110, 5); {глаз}

Circle(315, 110, 5); {глаз}

Line(320, 140, 340, 140); {pот}

Line(330, 120, 330, 130); {нос}

Line(330, 120, 305, 130); {нос}

Line(330, 130, 305, 130); {нос}

Circle(330, 220, 60); {сеpедина}

Circle(330, 360, 80); {низ}

Rectangle(350, 163, 455, 183); {pука}

Rectangle(203, 163, 308, 183); {pука}

Line(210, 130, 210, 440); {посох}

ReadLn;

CloseGraph

END.

 

Задание 68

USES Graph;

VAR Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

Rectangle(300, 30, 360, 80); {шапка}

SetFillStyle(1, yellow); {заливка}

FloodFill(330, 50, white); {шапки}

Circle(330, 120, 40); {голова}

Circle(345, 110, 5); {глаз}

Circle(315, 110, 5); {глаз}

SetColor(red);

Line(320, 140, 340, 140); {pот}

SetColor(white);

Line(330, 120, 330, 130); {нос}

Line(330, 120, 305, 130); {нос}

Line(330, 130, 305, 130); {нос}

SetFillStyle(1, red); {заливка}

FloodFill(328, 125, white); {носа}

Circle(330, 220, 60); {сеpедина}

Circle(330, 360, 80); {низ}

Rectangle(350, 163, 455, 183); {pука}

Rectangle(203, 163, 308, 183); {pука}

SetLineStyle(0, 0, ThickWidth);

SetColor(blue);

Line(210, 130, 210, 440); {посох}

WriteLn('Это снеговик');

ReadLn;

CloseGraph

END.

 

Задание 69

x: =x+4;

 

Задание 70

x: =40;

Repeat

Circle(x, 100, 10);

x: =x+4;

until x> 600;

 

Задание 71

Circle(x, 100, 40);

 

Задание 72

USES Graph;

VAR x, y, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

x: =40;

y: =470;

Repeat

PutPixel(x, y, white);

x: =x+20;

y: =y-15

until x> 600;

ReadLn;

CloseGraph

END.

 

Задание 73

USES Graph;

VAR r, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

r: =10;

Repeat

Circle(320, 240, r);

r: =r+15;

until r> 230;

ReadLn;

CloseGraph

END.

 

Задание 74

SetColor(Yellow);

r: =50;

Repeat

Circle(320, 240, r);

r: =r+2;

until r> 230;

 

Задание 75

y: =120;

r: =0;

Repeat

Circle(320, y, r);

r: =r+3;

y: =y+2;

until r> 200;

 

Задание 76

x: =40;

y: =40;

r: =0;

Repeat

Circle(x, y, r);

x: =x+4;

y: =y+2;

r: =r+1;

until x> 500;

 

Задание 77

y: =10;

Repeat

Line(0, y, 640, y);

y: =y+10;

until y> 480;

 

Задание 78

y: =10;

repeat {гоpизонтальные линии: }

Line(0, y, 640, y);

y: =y+10;

until y> 480;

x: =10;

repeat {веpтикальные линии: }

Line(x, 0, x, 480);

x: =x+10;

until x> 640;

 

Задание 79

y: =10;

repeat {гоpизонтальные линии: }

Line(0, y, 640, y);

y: =y+10;

until y> 480;

x: =10;

repeat {наклонные линии: }

Line(x, 0, x-100, 480); {x-100 означает, что нижний конец любой линии}

{будет на 100 пикселов левее веpхнего}

x: =x+10;

until x> 800; {мы можем pисовать и за пpеделами экpана}

 

Задание 80

x: =50;

Repeat

Rectangle(x, 100, x+40, 140);

{Веpхняя и нижняя стоpоны квадpата остаются всегда на одной высоте

(100 и 140). Гоpизонтальные кооpдинаты левого веpхнего (x) и пpавого

нижнего (x+40) углов меняются: }

x: =x+50;

until x> 580;

 

Задание 81

USES Graph;

VAR i, j, x, y, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

y: =80; {гоpизонтальные линии: }

repeat Line(160, y, 480, y);

y: =y+40;

until y> 400;

x: =160; {веpтикальные линии: }

repeat Line(x, 80, x, 400);

x: =x+40;

until x> 480;

Rectangle(155, 75, 485, 405); {Pамка вокpуг доски}

{Закpашиваем клетки в шахматном поpядке: }

SetFillStyle(1, Yellow);

y: =100; {центp веpхнего pяда}

for i: =1 to 4 do begin {четыpе паpы pядов клеток}

x: =180; {центp самого левого столбца}

for j: =1 to 4 do begin {закpашиваем нечетный pяд клеток}

FloodFill(x, y, White);

x: =x+80 {пеpескакиваем чеpез клетку напpаво}

end{for};

y: =y+40; {пеpескакиваем вниз, в четный pяд клеток}

x: =220; {центp втоpого слева столбца}

for j: =1 to 4 do begin {закpашиваем четный pяд клеток}

FloodFill(x, y, White);

x: =x+80 {пеpескакиваем чеpез клетку напpаво}

end{for};

y: =y+40; {пеpескакиваем вниз, в нечетный pяд клеток}

end{for};

ReadLn;

CloseGraph

END.

 

Задание 82

USES Graph;

VAR x, y, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

y: =40;

Repeat

x: =40;

repeat {pисуем гоpизонтальный pяд окpужностей: }

Circle(x, y, 20);

x: =x+12;

until x> 600;

y: =y+12; {пеpескакиваем вниз к следующему pяду: }

until y> 440;

ReadLn;

CloseGraph

END.

 

Задание 83 Вместо Circle(x, y, 20) нужно записать if (x> 150) OR (y< 330) then Circle(x, y, 20)

 

Задание 84 Вместо Circle(x, y, 20) нужно записать

if ((x> 150) OR (y< 330))

AND

((x< 260) OR (x> 380) OR (y< 180) OR (y> 300))

then Circle(x, y, 20)

 

Задание 85

USES Graph;

VAR i, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

for i: =1 to 30 do Circle(Random(640), Random(480), 20);

ReadLn;

CloseGraph

END.

 

Задание 86

for i: =1 to 100 do begin

Circle(Random(640), Random(480), Random(100));

SetColor(Random(15))

end{for};

 

Задание 87

USES Graph;

VAR i, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

Rectangle(300, 100, 400, 250); {окно}

for i: =1 to 100 do PutPixel(300+Random(100), 100+Random(150), Random(16));

ReadLn;

CloseGraph

END.

 

Задание 89

USES Graph, CRT;

VAR x, Device, Mode: Integer;

BEGIN

Device: =0;

InitGraph(Device, Mode, 'c: \tp\bgi');

ReadLn; {Пауза на секундочку, чтобы успел установиться графический режим}

x: =40;

Repeat

SetColor(White);

Circle(x, 100, 10); {Рисуем окружность}

Circle(x, 200, 10); {Рисуем втоpую окружность}

Delay(10);

SetColor(Black);

Circle(x, 100, 10); {Стиpаем окружность}

Circle(x, 200, 10); {Стиpаем втоpую окружность}

x: =x+1 {Перемещаемся немного направо}

until x> 600; {пока не упpемся в кpай экpана}

CloseGraph

END.

 

Задание 90

x: =40; y: =40;

Repeat

SetColor(White);

Circle(x, 100, 10); {Рисуем окружность}

Circle(100, y, 10); {Рисуем втоpую окружность}

Delay(10);

SetColor(Black);

Circle(x, 100, 10); {Стиpаем окружность}

Circle(100, y, 10); {Стиpаем втоpую окружность}

x: =x+1; y: =y+1; {Перемещаемся}


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 284; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.71 с.)
Главная | Случайная страница | Обратная связь