Основные теоретические сведения. Приступая к решению задач этого раздела, следует вспомнить, что:
Приступая к решению задач этого раздела, следует вспомнить, что:
- для передачи данных в функцию или процедуру надо использовать только параметры (глобальные переменные, т. е. переменные, объявленные вне функции, применять не рекомендуется);
- среди выполняемых инструкций функции обязательно должна быть инструкция присваивания имени функции значения функции;
- тип каждого фактического параметра (константы или переменной) в инструкции вызова функции или процедуры должен быть таким же, как тип соответствующего формального параметра, указанного при объявлении функции;
- если в инструкции объявления функции или процедуры перед именем формального параметра не стоит слово var, то при вызове функции или процедуры можно использовать в качестве формального параметра константу или переменную соответствующего типа. Если слово var указано, то формальным параметром может быть только переменная;
- если параметры функции используются для возврата результата в программу, вызвавшую функцию, то в объявлении функции перед именем соответствующего параметра должно присутствовать слово var.
Примеры решения задач
Задача 1.Даны действительные числа a, b, c. Вычислить
Система тестов:
№ | Значение A | Значение B | Значение C | Результаты |
-2 | -3 | 0,25 |
Решение задачи:
Program Max_X_Y;
var
a, b, c, s : Real;
function f_max(x, y : real) : real; {описание функции}
begin {начинается тело функции}
if X>y then
f_max:=x
else
f_max:=y;
end;
begin {начинается тело программы}
Writeln('Введите a, b, c ');
Read(a,b,c);
s:= (f_max(a, a+b) + f_max(a, b+c)) / (1+f_max(a+b*c, 5));
Writeln('S= ',s);
Readln;
end.
Задача 2.Даны три вектора А, В, С, заданные своими координатами. Найти сумму А*В+B*С+A*C.
Система тестов:
№ | Значение A | Значение B | Значение C | Результаты |
1,1,1 | 1,1,1 | 1,1,1 | ||
1,2,0 | 0,1,2 | 2,1,1 |
Решение задачи:
Program Vectors;
Type
Vect=array[1..3] of real; {объявление структуры типа вектора}
var
A,B,C:Vect;
function ProizvVect(x, y : Vect) : real;
var {объявлениелокальных переменных I и p}
i:integer; {I и p могут быть ипользаваны только в теле}
P:real; {функции}
Begin {начало тела функции}
For i:=1 to 3 do
P:=P+x[i]*y[i];
ProizvVect:=P;
end;
procedure ReadVect(var x:Vect); {процедура чтения массива}
var
i : integer;
begin
Writeln('Введите координаты вектора?');
For i:=1 to 3 do
read(x[i]);
end;
begin {начинается тело программы}
ReadVect(A);
ReadVect(B);
ReadVect(C);
Writeln('S= ', ProizvVect(A,B)+ProizvVect(B,C)+ProizvVect(A,C));
Readln;
Readln;
end.
Варианты заданий для самостоятельной работы
1. Даны натуральные числа n,m. Получить
S=(n!+(n-1)!+(n-2)!)/m!, n>=2;
2. Даны натуральные числа n. Получить
3. Даны три вектора А, В, С, заданные своими координатами. Найти сумму S=А+B+A+C (Описать процедуру сложения векторов).
4. Даны три вектора А, В, С, заданные своими координатами. Найти сумму 3А+2В+4С (Описать процедуру умножения вектора на число.).
5. По заданным 5-элементным вещественным массивам A, B и C вычислить:
здесь запись min – означает минимум по всем элементам массива.
6. По заданным 5-элементным вещественным массивам A, B и C вычислить:
здесь запись Sum(X,n) – означает сумму n первых элементов массива.
7. Дан четырехугольник ABCD, заданный координатами его вершин на плоскости. Найти кратчайший путь от точки A до точки С.
8. Дан массив 10x10 (Array[1..10, 1..10] of char)- образ экрана. Определите процедуры построения:
а) горизонтальной линии;
b) вертикальной линии.
Нарисовать два прямоугольника на «экране».
9. Даны числа a, b, c, ….. Выяснить в каком из них сумма цифр больше (определить функцию.)
10. Дан массив целых чисел x [10]. Вывести на экран представление каждого из этих чисел в двоичной системе счисления (определить функцию.)
Список литературы
1. Андреева Т.А. Программирование на языке Pascal. - М.: Интернет-Университет Информационных Технологий, 2006.
2. Великович Л.С. , Цветкова М.С. Программирование для начинающих. - М.: БИНОМ, 2012.
3. Грызлова Т.П., Грызлов В.И. Туpбо Паскаль 7.0. - М.: ДМК Пресс, 2006.
4. Ильина С.В., Бурменский А.Д., Гринкруг Л.С., Тарануха Н.А. Обучение программированию: язык Pascal. Учебное пособие. - М.: СОЛОН-ПРЕСС, 2009.
5. Марченко А.И. Программирование в среде Turbo Pascal 7.0: Учеб. пособие для вузов / Под ред. В.П.Тарасенко. - 6-е изд. - Киев : ВЕК+, 2003.
6. Мишенин А.И. Сборник задач по программированию. Учебное пособие. - М.: Финансы и статистика, 2009
7. Окулов С.М. Основы программирования. - М.: БИНОМ, 2012.
8. Павловская Т.А. Программирование на языке высокого уровня Паскаль. - М.: Интернет-Университет Информационных Технологий, 2010.
9. Тишин В.И. Программирование на Паскале. Практикум. - М.: БИНОМ, 2013.
10. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. - М.: Издательство «ОМД Групп», 2003.
Электронные ресурсы:
1. www.agulib.adygnet.ru – Научная библиотека Адыгейского государственного университета.
2. www.biblioclub.ru – Университетская библиотека Online.
3. www.intuit.ru – Национальный открытый университет.
4. http://ips.ifmo.ru/courses/pascal – Учебный курс по языку программирования Pascal.
5. http://www.pascaler.ru – Курс обучения программированию на Turbo Pascal.