Основы алгоритмизации
И программирования
Рабочая тетрадь
|
Гайдаржи А.А.
Основы алгоритмизации и программирования: Рабочая тетрадь / А.А.Гайдаржи. – Старый Оскол, 2012. – 40 с.
Рабочая тетрадь «Основы алгоритмизации и программирования» ориентирована на студентов колледжа и может быть использована на таких дисциплинах, как «Информатика», «Программирование», «Практикум по решению задач на ЭВМ» и другие.
В рабочей тетради предлагаются задания по темам: «Стандартные типы данных и выражения», «Линейные структуры», «Разветвляющиеся структуры», «Циклические структуры», «Подпрограммы. Процедуры и функции», «Массивы одномерные», «Массивы двумерные».
Целью данной тетради является организация самостоятельного изучения и закрепления знаний студентов по языку Паскаль. Тетрадь построена в виде заданий, кроссвордов, тестовых и самостоятельных работ и используется для стимулирования самостоятельного изучения нового материала. Задания в рабочей тетради дополняют и углубляют сведения, полученные на лекционных занятиях, а также обеспечивают необходимую теоретическую и практическую подготовку учащихся по языку Паскаль.
Рабочая тетрадь «Основы алгоритмизации и программирования» рассчитана как на базовый, так и на повышенный уровни обучения.
Рецензент:
В.И.Нездоровин - старший преподаватель кафедры Экономики, информатики и математики СОФ НИУ «БелГУ»
Содержание
Введение …………………………………...……………………………….……… | |
1. Стандартные типы данных и выражения...…………………………………... | |
1.1 Задания …..……………………………………………………………….…….. | |
1.2 Самостоятельная работа.……………………………………………….……... | |
1.3 Вариант 1...…………………………………………….……………………….. | |
1.4 Вариант 2.…………………………………………….………………………... | |
2. Линейные структуры ………………..………………………………………….. | |
2.1 Задания………………………...………………………………………………... | |
2.2 Самостоятельная работа...…………………………………………………….. | |
2.3 Вариант 1 ………………..……………………………………………………... | |
2.4 Вариант 2 …………………………………………………………………..…... | |
3. Разветвляющиеся структуры………………………………………………..… | |
3.1 Задания………………………………………………………………………..… | |
3.2 Самостоятельная работа ………………………………………………………. | |
3.3 Вариант 1 ………………………………………………………………………. | |
3.4 Вариант 2 ……………………………………………………………………..... | |
4. Циклические структуры……………………………………………………..… | |
4.1 Задания………………………………………………………………………..… | |
4.2 Самостоятельная работа …………………………………………………...….. | |
4.3 Вариант 1 ………………………………………………………………..……... | |
4.4 Вариант 2 ……………………………………………………………………..... | |
5. Подпрограммы. Процедуры и функции.…………………………………... … | |
5.1 Задания………………………………………………………………………..… | |
5.2 Самостоятельная работа …………………………………………………...….. | |
5.3 Вариант 1 ……………………………………………………………………..... | |
5.4 Вариант 2 …………………………………………………………………..…... | |
6. Массивы одномерные……………………………………………………..…… | |
6.1 Задания……………………………………………………………………..…… | |
6.2 Самостоятельная работа …………………………………………………...….. | |
6.3 Вариант 1 …………………………………………………………………..…... | |
6.4 Вариант 2 ……………………………………………………………………..... | |
7. Массивы двумерные ………………………………………………………..…. | |
7.1 Задания …..…………………………………………………………………...… | |
7.2 Самостоятельная работа..…………………………………………………….. | |
7.3 Вариант 1 …..…………………………………………………………………... | |
7.4 Вариант 2 ………………………..……………………………………………... | |
Список использованных источников..…………………………………………… |
|
|
Введение
Применение рабочей тетради в обучении улучшает качество образования, повышает эффективность учебного процесса на основе его индивидуализации, появляется возможность реализации перспективных методов обучения. Сложность проектирования занятий заключается в том, что программ специального целевого дидактического назначения мало, и преподавателю приходится использовать в основном те, которые предлагаются для широкого круга пользователей (электронные энциклопедии, справочники) или программы для профессиональной подготовки (компьютерные учебники, моделирующие среды) и адаптировать их к конкретным условиям. Актуальность рабочей тетради заключается в оптимальном сочетании содержания информационной подготовки студентов на занятиях с возможностью выявить направление движения формирования мыслительной деятельности. Рабочие тетради используются для текущего контроля преподавателем знаний и умений студентов применять знания при решении учебных задач. Поскольку учебные пособия содержат пошаговое описание задач, то студент имеет возможность самостоятельно проверить правильность решения задач в рабочих тетрадях. Практическая значимость заключается в применении листов рабочей тетради для облегчения освоения студентами трудной для них, но очень важной дисциплины и в ее личностно-формирующей ориентации.
|
Разработка по разделу «Основы алгоритмизации и программирования» весьма актуальна на нынешний день. Благодаря листам рабочей тетради, можно осуществить более лёгкое усвоение материала, и проверку усвоения этого материала.
В заключении можно отметить, что разработка рабочей тетради является вполне современным способом ведения учебного процесса. Несомненные преимущества налицо: проверка усвоения материала, контроль мыслительной деятельности учащихся, проверка полученных знаний, сами лекции проходят более разнообразно и как следствие этого повышенный интерес аудитории, возможность исправлять ошибки в момент, когда они делаются.
Стандартные типы данных и выражения
Задания
1. Идентификатор Почему он недопустим?
5Summa __________________
Begin ___________________
D'Artanyan __________________
Сумма __________________
Summa Dohoda __________________
A*B __________________
Nomer.Doma ___________________
2. Зачеркните числа, записанные не по правилам языка Turbo Pascal
1)3.14159 5)16. 9) 12.SE.3
2)150 6)15.0Е-04 10) 12Е+5
3)0,005 7)2.345Е2 11) Л23ЕЗ
4).12345 8) 1.15Е-3 12) 1.15Е-3
3. Подберите подходящий тип данных:
Количество учеников в классе________________________
Площадь круга____________________________________
Количество автомобилей в регионе____________________
Количество автомобилей у одного владельца___________
Первая буква фамилии______________________________
Количество жителей в государстве____________________
Плотность населения в государстве___________________
Произведение цифр двузначного числа_____________ __
Произведение цифр трехзначного числа_________________
Фамилия сотрудника фирмы ________________________
Заработная плата сотрудника фирмы____________________
4. Записать выражение на языке программирования Pascal.
1) ______________________________________________________
2) ____________________________________________________
3) ________________________________________________________
4) _____________________________________________________
5) ____________________________________________________
6) __________________________________________________________
7) _________________________________________________________
8) __________________________________________________________
9) _______________________________________________________
10) _________________________________________________
11) ____________________________________________
12) __________________________________________________
13) ______________________________________________
5. Определить тип результата, если: X-integer, Y-real, C-char.
Al:=sqrt(X) ______ A7:=A6<X________
A2:= sqrt (Y) _______ A8:=23 mod 4______
A3:=2.5*X _______ A9:=7 div 2/3______
A4:=X-A1 _______ A10:=pred(C)______
A5:=A4>A3 _______ A11:=A8/y______
A6:=ord(C) _______ A12:=chr(X)_____
6. Найти значение выражения:
1) 25/2= _____________
2) 25 div 2 = ___________
3) 25 mod 2 = __________
4) 15+21 div 2= _________
5) 2 div 3 = ____________
6) 2 mod 3 = ___________
7) 11 mod 5 = ___________
8) 14 mod (5 + 3) = ___________
7. Записать в виде обычной математической формулы
1) y:=2*sin(x)*sqrt(x+sqrt(abs(x)))_______________________________________
2) y:= sqrt(sin(x)+sin(sqrt(x)))___________________________________________
3) y:= sqrt(abs(x-1)+sqrt(sin(x)))__________________________________________
4) y:=(5*sin(x) +4)/2*15*sin(sqrt(x))_______________________________________
5) y:=k+15*x/(2*sin(x)) _________________________________________________
6) y:=sin(sqr(x)+sqr(sin(x))_______________________________________________
7) y:=a+b/b+c___________________________________________________________
8) у:=a*b*sin(x)_____________________________________________________
8. Вычислить значение выражения:
1) abs(-40)= _____ 7) trunc (12.19) = _____
2) trunc(-13.6)= ____ 8) abs(trunc(-6.32)) = _____
3) round(-13.6) = ____ 9) round(6.8)+sqr(3)=_____
4) frac(3.428)= _____ 10) trunc(12.2)*sqr(2) = _____
5) ргеd('Л') = _____ 11) sqrt(abs(round(-12.6))) = _____
6) round(12.19) = _____ 12) sqrt(sqr(trunc(-3.32)) = _______
9. Выберите для каждого значения наиболее подходящий тип данных из таблиц типов и укажите ниже.
1)
'X' | '*' | -5 | |
-999 | '5' | '-5' | |
True | False | 5.0 | -5.0 |
Самостоятельная работа
Вариант 1
1. Найти значение выражения:
1) 220 div 10 mod 3 = ________
2) -16 mod 11 * 3 = __________
3) 3 div (5+3) = __________
4) (16 mod 6) / (2 div 1) = ______
2. Записать выражение на языке программирования Pascal:
Вариант 2
1. Найти значение выражения:
1) 220 mod 10 div 3 = ________
2) 3 div 5 + 3 = _________
3) (-19+9) div -5 = ________
4) 16 mod 6 / 2 div 1 __________
2. Записать выражение на языке программирования Pascal:
Линейные структуры
Задания
1. Установите соответствие между служебными словами и названиями разделов программы:
1) Var 2) Program 3) Uses 4) Begin … end | 1) Раздел операторов 2) Раздел имени программы 3) Раздел описания переменных 4) Раздел описания библиотечных модулей |
2. Напишите заголовок программы и объявите переменные в разделе описания переменных к задачам:
Задача 1. Найти корни квадратного уравнения ах2+вх+с=0
Задача 2. Даны координаты двух точек. Найти расстояние между ними.
Задача 3. Вычислить площадь прямоугольного треугольника, если известны его стороны
3. Напишите инструкцию вывода на экран:
а) вашего имени;
б) числа 400;
в) значения выражения 7,3(3,22+8,61).
4. Найдите значение S после выполнения следующих операторов:
S:=18; S:=8; S:=113; Write(S); | S:=27; S:=S+19; S:=76; Write(S); | S:=3; S:=S+1; S:=S+3; Write(S); | S:=7; S:=S+S; S:=S+S; Write(S); |
_________ | _________ | __________ |
5. Расположите в правильном порядке строки программы, вычисляющей периметр и площадь параллелограмма:
1) S:=a*h; | |
2) end. | |
3) program pr; | |
4) p:=2*(a+b); | |
5) Uses crt; | |
6) var a,b,h,p,s: integer; | |
7) readln; | |
8) Writeln(‘p=’,p,’ s=’,s); | |
9) a:=6;b:=3;h:=4; | |
10) clrscr; | |
11) begin |
6. Дан текст программы в таблице с ошибками:
исправьте ошибки в программе;
что выведется на экран в результате выполнения программы?
Программа с ошибками | Программа без ошибок | На экране будет напечатано: |
War: a,b,c – integer, x: real; Bigin A=7, b=3,2, c:=a+b; Writln (summa=, c); C:=c/2; x:=a-c; Writeln(‘x=’, x, ‘kvadrat=’, x*x); And | ||
Program Ошибки2; Begin Var X:integer; X:=6+8; Write(X); End; |
7. Перевести блок-схему вычисление расстояния между точками А и B на язык Паскаль.
8. Напишите программы для следующих задач, организуя экран пользователя по предложенному варианту.
Задача | Экран пользователя | Программа |
1. Написать программу вычисления площади поверхности параллелепипеда. S=2*(A*B+B*C+C*A) (Запустите программу, введите данные: А=9, В=7.5, С=5. Если правильно составлена программа, то вы получите результат S=300.00) | Вычисление S поверхности параллелепипеда. Введите исходные данные: Длина (см)? 9 Ширина (см)? 7.5 Высота (см)? 5 Площадь поверхности: 300.00 кв.см. | |
2. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей. | Вычисление стоимости покупки. Введите исходные данные: Цена тетради (руб.)? 2.75 Количество тетрадей? 5 Цена карандаша (руб.)? 0.85 Количество карандашей? 2 Стоимость покупки: 15.45 руб. |
9. Заполните таблицу. Пробел перед числом обозначайте _
Значение | Формат | Вывод |
3.14159 3.14159 0.1234 -0.006 25.876 -0.006 ‘***’ ‘*’ 3.14159 3.14159 3.14159 -0.006 -0.006 -124.3123 -3.14159 ‘*’ ‘мышь’ | :5:2 :5:3 :4:2 :8:3 :3:1 :9 :7 :7 ________________ ________________ ________________ ________________ ________________ ________________ ________________ ________________ ________________ | ________________ ________________ ________________ ________________ ________________ ________________ ________________ ________________ 3.14 _ _ 3.1 _ 3.14159 -0.01 -0.00600 -124.31 -3.14Е+00 _ _ _ * _ _ _ мышь |
Самостоятельная работа
Вариант 1
1. Представить результат работы процедуры (по позициям и строкам)
WriteLn (r, ':', a:8);
WriteLn (s, x, d:9:3);
WriteLn ('i =', i:3);
WriteLn (t, d);
WriteLn (z).
2. Составить линейный алгоритм вычисления у по формуле:
y= 6x (x + 2) – (x + 4), при x = 2
Вариант 2
1. Представить результат работы процедуры (по позициям и строкам)
WriteLn (y, d:10:3);
WriteLn ('Введите к', k:3);
WriteLn (y, t, a);
WriteLn (' При к = ',k, s, g);
WriteLn (s:3, d).
2. Составить линейный алгоритм вычисления у по формуле:
y = 3x – (2x + 1), при x =3
3 Разветвляющие структуры. Оператор варианта
Задания
1. Отметьте те выражения, результат которых вычислен правильно:
a) 60>20 = true
b) not (30> 10) = false
c) (3>2) and (5>6) = true
d) (60>70) or (100<90) = true
e) (60>70) and (100<90) = true.
2. Предположим А:=5; B:=10; C:=15.
Вычислите значение выражения (true, false):
Выражение | Результат | Выражение | Результат |
(А=В) or (A<=B) | Not (A>=5) | ||
(А=В) and (A<=B) | (С=А+В) or (B>C) | ||
not(A=B) and (A<B) | (С<=А-В) or (B<C) | ||
(В<=12)ог(С=15) | (С<=А+В) or (B>C) | ||
(B<=12)and(C=15) | (С=А+В) and(B<C) |
3. Запишите логическое выражение для каждой из фраз:
А принадлежит диапазону (18; 80)___________________________________
А принадлежит диапазону [18; 80) __________________________________
А принадлежит диапазону (-10; 18) __________________________________
А принадлежит диапазону [-10; 18] _________________________________
А не принадлежит диапазону [-10; 18]_______________________________
А не принадлежит диапазону (-10; 18) _______________________________
А меньше -1 или больше 1_________________________________________
А не принадлежит диапазону [18; 80) _______________________________
А больше 0 и не равно 10__________________________________________
А кратно 4 и 5 (используйте mod)__________________________________
4. Запиши словесное описание фрагмента алгоритма на языке Паскаль:
1) Если число Х равно 47, то увеличить переменную Х на 15, иначе уменьшить на 36;
2) Если переменная S не равна 21, то увеличить переменную S в 6 раз, иначе уменьшить на 53;
3) Если переменная U нечетная, то увеличить ее на 8, иначе увеличить в 53 раза;
4) Если число Z больше 48, то увеличить на 51, иначе уменьшить на 51;
5) Если X меньше 15, то Y присвоить значение X/2, а Z присвоить значение 15/ X, иначе Y присвоить значение X*2, а Z присвоить значение 15- X.
5. Расставь строки программы в правильном порядке, чтобы получилась программа, которая находит решение уравнения ах=b:
1) writeln(‘решения нет’) | |
2) a,x,b:real; | |
3) if | |
4) writeln(‘x=’,b/a); | |
5) a<>0 | |
6) begin | |
7) then | |
8) readln(a,b) | |
9) end. | |
10) else |
6. Что будет выведено на экран, после выполнения данной программы:
a=8, n=5 | a=3, n=3 | a=9, n=2 | a=7, n=4 |
Program Primer; Var x, y:integer; Begin Read(a,n); if a<=10 then writeln(a*2) else writeln(n*2); End. | Program Primer; Var x, y:integer; Begin Read(a,n); If a mod 3<>0 then writeln(a+5) else writeln(n+2); End. | Program Primer; Var x, y:integer; Begin Read(a,n); If (a mod 2=0) and (n<>2) then writeln(a*5) else writeln(n*5); End. | Program Primer; Var x, y:integer; Begin Read(a,n); If (a mod 2=0) or (n<>2) then writeln(a*5) else writeln(n*5); End. |
Ответ: __________ | Ответ: __________ | Ответ: __________ | Ответ: __________ |
7. Заполните таблицу:
x | y | a |
Program Primer;
Var a, x, y:integer;
Begin
Read(x,y);
If (x+y>50) or (y>100) Then
A:=x+y
Else
A:=2*x+y;
Write(a);
End.
8. Представьте фрагмент программы в виде блок-схемы
а)
IF a>b THEN
k:=k+l
ELSE
IF b>c THEN
k:=k+2
ELSE
k:=k+3;
Writeln(k)
б)
IF a=0 THEN
Begin
X:=l;
Y:=l;
End
ELSE
Begin
X:=2;
Y:=2;
End;
в)
IF a=b THEN
z:=a+b
ELSE
Begin
IF a>0 THEN
a:=2*a;
a:=a-l; b:=b-l;
z:=a/b;
End;
z:=z+10;
9. Запишите оператор IF, эквивалентный следующему оператору CASE.
CASE x OF
2, 5: writeln ('Ничья');
7..11: writeln ('Выигрыш')
ELSE
writeln ('Проигрыш')
END;
10. Определить, что будет выведено на экран после выполнения фрагмента программы:
k:=10; CASE k mod 3 OF 0: writeln('k=4m'); 1: writeln('k=4m+l'); 2: writeln('k=4m+2'); 3: writeln('k=4m+3'); END; | d:=30; s:=1000; Case d of 1..5: s:=15; 6..10: s:=36; 11..25: s:=30; End; Writeln(s); | m:=43; s:=1234; case m of 10..15: s:=30; 20..25: s:=5; 30..35: s:=25; End; Writeln(s); |
____________________ | ___________________ | _______________ |
11. Запишите оператор CASE, эквивалентный следующему оператору IF.
……………………….
If (x>=a) and (x<=b) then
writeln ('Хорошо')
else
If (x = d) or (x = f) then
writeln ('Плохо')
else
writeln ('Неверный ввод');
……………………….
12. Составьте программы для следующих задач:
Задачи | Отметка |
Дано число х. х2+1, если х <0 1) Вычислить значение функции: У= x-2,1,если х> Sin x, если 0 х | |
2) По введенному году обучения в школе (числу от 1 до 11) вывести сообщение «Привет, k-классник!». Например, если k=1, «Привет, первоклассник!» |
13. Разгадайте сканворд:
Самостоятельная работа
Вариант 1
1. Какое значение будет иметь переменная d после выполнения операторов при a = 3, b = 1, d = 0:
1) If a>b Then d:=a Else d:=b; d:=d*10;
2) If a>b Then d:=b; d:=d*10;
3) If a>b Then d:=b; d:=d+a Else d:=d*10;
4) If a>2 Then If b>2 Then d:=1 Else d:=2; d:=d*10.
2. Составить блок-схему и программу вычисления значения функции:
Вариант 2
1. Какое значение будет иметь переменная d после выполнения операторов при a = 2, b = 5, d = 4:
1) If a > b Then d:= a Else begin d:= b; d:= d – a; end;
2) If a < b Then d:= b; d:= d + a;
3) If a > b Then d:= a Else begin d:= b; d:= d + a end; d:= 2 * d;
4) If (d > b) or (d < a) Then d:= b Else d:= a; d:= d + c;
2. Составить блок-схему и программу вычисления значения функции:
Циклические структуры
Задания
1. Запишите заголовки цикла For для изменения параметра из диапазонов:
от -10 до +10_______________________________________________
от 100 до 1_________________________________________________
от 15 до 25_________________________________________________
от -10 до -20_______________________________________________
2. Запишите оператор цикла For, который бы выводил все числа в диапазоне от 100 до 10 включительно:
________________________________________________________________________________________________________________________________________________
________________________________________________________________________
3. Определить, сколько раз выполнится цикл:
I:=4; While i<6 do i:=i+3; | y:=1; i:=1; While i>1 do begin y:=y+1/i; end; | i:=5; y:=1; While i>2 do i:=i-1; y:=y+i*i; |
__________________ | _______________________ |
4. Определить значение переменной S после выполнения следующих команд и заполнить таблицу:
……………..
Read(n);
n | s |
S:=3;
I:=1;
While i<=n do begin
S:=s+I;
I:=i+5;
End;
Write(s);
…………….
5. Составьте блок-схему по готовой программе.
PROGRAM summa; VAR A,S:REAL; BEGIN S:=0; A:=0.2; WHILE A<=2 DO BEGIN S:=S+A; A:=A+0.1; END; WRITELN(‘Сумма=’, S:15:2); END. |
6. Определите значение переменной a после выполнения фрагмента алгоритма:
7. Выполните трассировку и определите значение переменной S и I после выполнения фрагмента программы.
S:=0; I:=0; Repeat I:=I+5; Until I<=5; S:=S+I*I; S _____________ I _____________ Тело цикла выполняется ____ раз | I | S | I<=5? |
8. Определите сколько раз будет выполняться тело цикла:
S:=0; I:=0; Repeat I:=I-1; S:=S+1/I; Until I<=1; | S:=0; I:=1; Repeat I:=I+1; Until I>2; S:=S+1/I; | S:=0; I:=1; Repeat S:=S+1/I; I:=I+1; Until I<1; |
_____________ | _______________ |
9. Расставьте строки программы в правильном порядке, чтобы получилась программа, которая находит сумму первых N натуральных чисел:
1) writeln(‘sum=’,sum); | |
2) end. | |
3) end; | |
4) sum:=sum+i; i:=i+1; | |
5) sum:=0; i:=1; | |
6) while i<=n do begin | |
7) var i,n,sum: integer; | |
8) write(‘n=’); readln(n); | |
9) begin |
10.Определите сколько раз будет выполняться тело цикла:
S:=0; For n:=4 downto 3 do begin S:=s+n; S:=s*10; End; | Y:=0; For n:=4 to 6 Y:=y+I; Y:=y/10; | Y:=1; For i:=1 to 3 do begin Y:=y+1; Y:=y+i; End; | Y:=5; For n:=1 downto 4 do Y:=y+n; |
________________ | ________________ | _________________ |
11. Сопоставьте фрагменту программы с циклом while соответствующий ей фрагмент программы с циклом For:
For i:=1 to 5 do s:=s+5; | While y<=10 do begin S:=s+5; Y:=y+1; End; | |
For i:=5 downto 1 do S:=s+5; | I:=5; While i>=1 do begin S:=s+5; I:=i-1; End; | |
K:=3; For i:=k to n do S:=s+5; | I:=1; While i<=5 do begin S:=s+5; I:=i+1; End; | |
For i:=y to 10 do S:=s+5; | I:=3; While i<=n do begin S:=s+5; I:=i+1; End; |
12. Выполните трассировку (пошаговое выполнение алгоритма вручную на бумаге). Определите значение переменной Х после выполнения фрагмента программы.
X:=10; For I:=1 to 5 do Begin Writeln (I,X); X:=X-2; End; X ____________ | I | X | Экран результата |
13. Составить программу по блок-схеме:
14. Исправьте синтаксические ошибки в следующем фрагменте программы:
a) Var I, k:real; S:real; Begin K=81; S:=4 For i=1 to k S=s/2 End. | б) Var a:real; Begin s=10; s:=s+2 for s:1 to 10 do writeln s end. |
15. Отгадайте кроссворд:
По горизонтали:
2. Универсальный язык программирования.
3. Символическое имя определенного программного объекта.
4. Структурная команда, выполнение которой происходит после проверки усло-вия.
5. Программа-переводчик с Паскаля на язык машинных команд с полным предва-рительным переводом.
6. Последовательность действий(команд), которую должна выполнить ЭВМ, чтобы решить поставленную задачу обработки информации.
7. Отдельный информационный объект (число, символ, таблица и пр.).
9. Процесс занесения данных в оперативную память.
По вертикали:
1. Повторение некоторой группы действий по условию.
2. Занесение значений в ячейку памяти.
8. Все множество символов, используемых в некотором языке для представления
информации.
Самостоятельная работа
Вариант 1
1. Составить циклический алгоритм вычисления произведения всех чисел от 25 до 40.
2.Определить значение переменной n после выполнения следующих элементов программы:
y:=0;
x:=10;
while x>0 do Begin
x:=x+2;
y:=y+x;
end;
Вариант 2
1. Составить циклический алгоритм вычисления среднеарифметического значения всех четных чисел от 0 до 20.
2.Определить значение переменной n после выполнения следующих элементов программы:
x:=0;
y:=5;
repeat
y:=2*y;
x:=x+y;
until y>5;
Подпрограммы. Процедуры и функции
Задания
1. Какое из следующих описаний процедуры, выводящей строку символов (*), свободно от ошибок:
Procedure Stars; Var s:integer; Begin For s:=1 to 78 do Writeln(‘*’); End; | Procedure Stars; Var s:integer; For s:=1 to 78 do Write(‘*’); | Procedure Stars; Var s:integer; Begin For s:=1 to 78 do Write(‘*’); End; |
1. Ниже представлены заголовки процедуры и функции, а также обращения к процедуре и функции.
Procedure Proc(x, y:integer; var z:real);
Function Func1(a, b:integer);
Proc(k, l, m);
H:=Func1(I, j);
Укажите соответствие между представленными ниже наборами параметров этих подпрограмм(слева) и названиями разновидностей параметров(справа).
a) X, y, a, b | 1.Параметры-переменные | |
b) X, y, z, a, b | 2.Параметры-значения | |
c) K, l, m, I, j | 3.Формальные параметры | |
d) z | 4.Фактические параметры |
2. Какое определение верно, либо ложно:
1.Вложение подпрограмм не допускается. | |
2.После раздела описаний процедуры следует ее тело, содержащее последовательность операторов, заключенных в операторные скобки. | |
3.Передача информации из тела программы в процедуру осуществляется с помощью механизма параметров. | |
4.Имена, объявленные в основной программе, доступны во всех описанных в ней подпрограммах. | |
5. Параметр-значение просто передает некоторое значение в подпрограмму. | |
6. Передача значений из процедуры в программу осуществляется с помощью параметров-переменных. | |
7. В Turbo Pascal наличие в теле подпрограммы оператора вызова самой себя не допускается. |
4. Напишите, что выведет на экран следующая программа:
Program V1_Z1;
Var A,B: Integer;
Procedure F1 (X,Y:Integer);
Begin
Y:=2*X+3;
End;
Procedure F2 (Var X,Y:Integer);
Begin
Y:=3*X+1;
End;
Begin
A:=1;
B:=3;
F1(A,B);
WriteLn('A=',A,'B=',B);
F2(A,B);
WriteLn('A=',A,'B=',B);
End.
5. Напишите, что напечатает следующие программы:
Program V1
var a,b,c,d:integer;
function func (x,y,z:integer):integer;
var w:integer;
begin
w:=x+y;
if y<z+1 then w:=w+1;
func:=w
end;
begin
a:=5;
b:=4;
c:=2;
d:=func(a,b,c); writeln('func от ',a,',',b,' и ',c,' дает ',d);
a:=func(b,c,d); writeln('func от ',a,',',b,' и ',c, ' дает ',a);
end.
Самостоятельная работа
Вариант 1
1. Напишите программу, которая по значениям двух катетов вычисляет гипотенузу, площадь, прямоугольного треугольника (используя подпрограмму).
2. Напишите, что выведет на экран следующая программа:
Program V2_Z1;
Var A,B:Integer;
Procedure F1(Var X,Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Procedure F2(Var X:Integer; Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Begin
A:=1;B:=3;
F1(A,B); WriteLn('A=',A,'B=',B);
F2(A,B); WriteLn('A=',A,'B=',B);
End.
Вариант 2
1. Написать программу сравнения площадей и периметров двух прямоугольных треугольников, если заданы их катеты (используя подпрограмму).
2. Напишите, что выведет на экран следующая программа:
Program V1_Z2;
Var A,B,A1,B1:Real;
Procedure SD(X,Y:Real; Var P,Q:Real);
Begin
P:=(X+Y)/2; Q:=(X-Y)/2;
End;
Begin
A:=2; B:=-4;
SD(A,B,A1,B1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
SD(A,B,B1,A1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
SD(B,A,A1,B1); WriteLn('A=',A:4:0,'B=',B:4:0,'A1=',A1:4:0,'B1=',B1:4:0);
End.
Массивы одномерные
Задания
1. Определите количество элементов в массиве:
Var A: array [6..7] of integer; | ____________ |
Var C: array [5..13] of real; | ____________ |
Var K: array [0..19] of integer; | ____________ |
Var A: array [1..8] of real; | ____________ |
Var D: array [-8..15] of integer; | ____________ |
2. Какие из приведенных описаний массивов являются правильными?
1) Var A: array [1..20] of real;
2) Type Mas=array [‘A’..’D’];
Var A:Mas;
3) Type Город=(Киев, Москва, Сочи, Адлер);
Var A:array[Город] of real;
4) Var MM:array [false..true] of char.
3. Укажите числовой диапазон:
a) A[i]:=random(61)____________________
b) B[j]:=random(35)____________________
c) C[5]:=random(14)___________________
d) B[z]:=random(45)___________________
e) A[k]:=random(28)___________________
4. Используя оператор RANDOM запишите правильно команды:
a) Элемент массива А с номером 7 находится в интервале [32..45] ______________
_________________________________________________________________
b) Элемент массива D с номером c находится в интервале [219..270] _____________
_________________________________________________________________
c) Элемент массива E с номером i находится в интервале [17..37] _____________
_________________________________________________________________
d) Элемент с номером s массива К находится в интервале[138..175] ____________
_________________________________________________________________
e) Элемент с номером к массива С находится в интервале[122..124] _____________
_________________________________________________________________
3. Записать циклы для решения следующей задачи:
1. Ввод 112 элементов массива Вс клавиатуры. Параметром цикла является переменная h. Нумерация начинается с 1. _______________________________________________________________ |
2. Ввод 96 элементов массива Ав столбец. Параметром цикла является переменная h. Нумерация начинается с 1. _______________________________________________________________ |
3. Формирует массив Еиз162случайных чисел, принадлежащих промежутку [15;30]. Параметром цикла является переменная Х.Нумерация начинается с 1 _______________________________________________________________ |
4. Формирует массив Dиз179случайных чисел, принадлежащих промежутку [16;24]. Параметром цикла является переменная f. Нумерация начинается с 1 _______________________________________________________________ |
6. Напишите пропущенные команды. Ввести массив В, из 18 элементов целого типа, заданных случайным образом на промежутке [12;65], нумерация начинается с 1 и вывести элементы массива с 1-го по 7-й в столбец.
Program Primer;
___________________;
j: integer;
BEGIN
For J:=1 to ______ do
_________________________
For j:=1 to _____ do
_________________________
End.
7. Дан массив К. Индексы начинаются с 1.
К | 5 | 18 | 26 | 12 | 11 | 21 |
Чему равно?
1) K[6]=___________
2) R[4]+K[1]=_______
3) 2+K[6]=_________
4) K[1+2]=_________
5) K[5]+10=________
6) 10*K[4]=________
Самостоятельная работа
Вариант 1
Изменить программу нахождения суммы элементов массива таким образом, чтобы:
1) массив состоял из 15 элементов вещественного типа;
2) значения элементов массива должны меняться в интервале от 0 до 5;
3) в результате выполнения программы должно быть найдено произведение всех элементов массива, а не их сумма.
Program massiv;
Const n=10;
Var a:array[1..n] of integer;
s,i: integer;
Begin
WriteLn('Исходный массив:');
For i:=1 to n do
begin
a[i]:=random(10);
Write('a[',i,']=',a[i],' ');
WriteLn (' ');
end;
s:=0;
For i:=1 to n do
s:=s+a[i];
WriteLn('Сумма всех элементов массива S=',s);
end.
Вариант 2
1. Изменить программу нахождения произведения элементов массива таким образом, чтобы:
1) массив состоял из 20 элементов целого типа;
2) значения элементов массива должны меняться в интервале от 8 до 27;
3) в результате выполнения программы должно быть найдено сумма всех элементов массива.
Program massiv;
Const n=10;
Var a:array[1..n] of real;
s,i: real;
Begin
WriteLn('Исходный массив:');
For i:=1 to n do begin
a[i]:=random(10);
Write('a[',i,']=',a[i],' ');
WriteLn (' ');
end;
s:=0;
For i:=1 to n do
s:=s*a[i];
WriteLn('произведение всех элементов массива S=',s);
end.
Массивы двумерные
Задания
1. Значения двух массивов А[1..100] и В [1..100] задаются с помощью следующего фрагмента программы:
…………….
For n:=1 to 100 do
A[n]:=n-100;
For n:=1 to 100 do
B[n]:=A[n]*n
…………….
Сколько элементов массива В будут иметь положительные значения