АКТЮБИНСКИЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ
ОТЧЕТ
ПО УЧЕБНОЙ ПРАКТИКЕ
Выполнил: ЖурмухамедовМарат
Проверила: ГайсагалееваБ.М.
АКТОБЕ 2010 г.
ДНЕВНИКДАТА ТЕМА ПРОДЕЛАННАЯ РАБОТА ПРОВЕРКА 14.06.10 Виды загрузки. Основные приемы работы в среде ТР. Редактирование текста программы, процесс отладки. Изучили основные виды загрузки и приемы работы в ТР и процесс отладки. 14.06.10 Изучение команд редактирования отладки программ с помощью командного меню Pascal. Изучили команды редактирования отладки программ с помощью командного меню Pascal. 14.06.10 Оформление программы. Разделы. Описание разделов. Назначение каждой части программы. Изучили, как оформлять программы, а также назначение каждой части программы. 15.06.10 Разработка постановки задачи. Разработка простейших программ с использованием команд присваивания, ввода, вывода. Научились составлять программы с использованием простейших операторов ввода, вывода, присваивания. 15.06.10 Форматы ввода, вывода. Команды Read, Readln, Write, Writeln. Изучили форматы ввода и вывода и команды Read, Readln, Write, Writeln. 15.06.10 Определение типов данных. Объявление данных. Константы. Метки. Комментарии. Разделители. Признаки концов строк на Pascale Изучили различные типы данных и признаки концов строки на Pascal 16.06.10 Команды ветвления. Полные и не полные команды ветвления. Изучили полную и не полную формы команд ветвления. 16.06.10 Составные операторы. Служебные скобки. Использование собственных операторов команды ветвления. Изучили различные виды составных операторов. 16.06.10 Виды выражения. Сравнения с текстовых и числовых условий. Изучили виды выражений и сравнения с текстовыми и числовыми условиями. 17.06.10 Составные условия. Оформления составных условий. Союзы составных условий. Примеры применения составных условий. Изучили составные условия их оформление и применение. 17.06.10 Решение задач по выбору функции по значению аргумента. Команда выбора. Определение принадлежности точки к фигуре, к функции. Словесные условия. Решали задачи по выбору функции по значению аргумента, определяли принадлежность точки к фигуре, к функции. 17.06.10 Решение задач. Применения. Ограничения отладки. Решали задачи по ограничению отладки 18.06.10 Организация цикла с условием продолжения. Составные операторы в цикле WHILE DO. Применение. Решение задач. Блок-схема. Отладка. Изучали составные операторы в цикле WHILE DO. Решали задачи. 18.06.10 Оператор цикла с условием окончания UNTIL, REPEAT. Правила применения. Изучили оператор цикла с условием окончания UNTIL, REPEAT. Решали задачи. 18.06.10 Решения задач. Блок-схема. Отладка. Результаты. Решение задач. 19.06.10 Оператор цикла с параметром FOR TO DO. Правила применения. Составные операторы в цикле. Решение задач с использованием оператора цикла с параметром. Изучили оператор цикла с параметром FOR TO DO. Решение задач. 19.06.10 Нахождение суммы, произведения элементов ряда. Параметр цикла. Научились находить сумму и произведение элементов ряда. 19.06.10 Цикл с параметром, с выборкой конца. Применение. Изучили оператор цикла с параметром 21.06.10 Производные типы. Одномерные массивы. Типы индекса. Использование значений регулярного типа. Рассмотрели одномерные массивы, производные типы. Выполнили практическую работу. 21.06.10 Многомерные массивы. Рассмотрели многомерные массивы. Выполнили практическую работу. 21.06.10 Синтаксис задания регулярного типа. Изучили синтаксис регулярного типа 22.06.10 Двумерный массивы. Матрица матриц. Создание формирование и работа с двумерными массивами. Поиск элементов в матрицах. Изучили двумерный массив и работу с двумерным массивом. 22.06.10 Упорядочивание и сортировка элементов. Решение задач на матрицы. Научились сортировать элементы массива. Решали задач на матрицы. 22.06.10 Составление программ с использованием матриц. Составляли программы с использованием матриц. 23.06.10 Процедуры без параметров. Процедуры с параметрами. Параметры — значение. Параметры- переменные Изучили разные виды процедур: с параметрами, без параметров, параметры- значение, параметр- переменные. 23.06.10 Параметры произвольных типов. Синтаксис процедур. Рассмотрели параметры произвольных типов. И синтаксис процедур. 23.06.10 Определение оператора процедуры. Примеры использования процедур Изучили оператора процедуры и его применение. 24.06.10 Описание процедуры- функции. Вызов функции. Побочные эффекты. Рекурсивные функции. Изучили описание процедуры- функции, её вызов. Побочные эффекты. 24.06.10 Параметры- функции и параметры- процедуры. Изучили параметры- функции и параметры- процедуры. 24.06.10 Процедуры и шаговая детализация. Рассмотрели шаговую детализацию. 25.06.10 Строковые величины. Работа со строковыми величинами. Формирование строк с учетом конца строки. Подсчет, замена элементов. Удаление символов, ведущих, ведомых пробелов. Поиск нужного символа. Научились работать со строковыми величинами. 25.06.10 Работа со стандартными функциями строк- Concat, Copy, Insert, Delete, POS, Length. Научились работать со стандартными строковыми функциями: Concat, Copy, Insert, Delete, POS, Length. 25.06.10 Функции STR, Val, UpCase. Изучили функции: STR, Val, UpCase. 26.06.10 Простейшие комбинированные типы. Описание комбинированных типов. Работа с элементами комбинированного типа. Выборка элементов. Изучили простейшие комбинированные типы, их описание, принцип работы. 26.06.10 Многоуровневые записи. Изучили многоуровневые записи 26.06.10 Оператор присоединения. Изучили оператор присоединения. 28.06.10 Обозначение множеств в Паскале. Задание множественного типа и множественная переменная. Операции над множествами. Изучили множества в Паскале. 28.06.10 Процедуры работы с множествами. Изучили процедуры работы с множествами. 28.06.10 Примеры использования множественного типа Рассмотрели примеры множественного типа 29.06.10 Файлы и работа с ними. Доступ к файлам. Имена файлов. Файлы логических устройств. Инициация файла. Изучили файлы, доступ к ним, их имена. 29.06.10 Процедуры и функции для работы с файлами Reset, Rewrite, Append, Assign Изучили процедуры и функции для работы с файлами: Reset, Rewrite, Append, Assign 29.06.10 Процедуры и функции для работы с файлами Reset, Rewrite, Append, Assign Изучили процедуры и функции для работы с файлами: Reset, Rewrite, Append, Assign 30.06.10 Текстовые файлы. Их объявление. Работа с ними. Изучили текстовые файлы, и работу с ними. 30.06.10 Буферная переменная и её использование. Изучили буферную переменную. 30.06.10 Буферная переменная и её использование. Изучили буферную переменную. 01.07.10 Работа с графикой в Паскале. Графический режим. Установка драйверов графики. Инициализация драйверов графики. Описание драйверов. Выполняли работы в графическом режиме Паскаль. 01.07.10 Команды вычеркивания точек, линей, окружностей, дуг, секторов и простых геометрических фигур. Изучили команды вычеркивания простых геометрических фигур.
01.07.10 Команды вычеркивания точек, линей, окружностей, дуг, секторов и простых геометрических фигур. Изучили команды вычеркивания простых геометрических фигур. 02.07.10 Модуль Граф. Модули установки цветов. Модули выбора стилей заливок- SetLineStile, SetFileStile, FlodFileStile. Изучили модуль Граф. И различные модули заливки и стилей. 02.07.10 Вычеркивание геометрических фигур с анимацией и организация движения и перемещения фигур по экрану. Изучили вычеркивание геометрических фигур с анимацией и организацией движения и перемещения фигур по экрану. 03.07.10 Разработка программы графики с использованием всех модулей Граф. Изучили разработку программ с использованием модуля Граф. 03.07.10 Разработка программы графики с использованием всех модулей Граф. Изучили разработку программ с использованием модуля Граф. 03.07.10 Модули работы с текстом в графическом режиме. Модуль CRT. Системный модуль System. Изучили принцип работы в графическом режиме.
Содержание
Линейная программа наПаскаль
Программа с ветвлениями
Циклическая программа
Массивы
Процедуры и функции
Файловые данные в Паскале
Записи в Паскале
Строки
Графика в Турбо-Паскале
Линейнаяпрограмма на Паскаль
Задание 1.Составить алгоритм вычисления y=55*(a +b)
program as; Блок-схема
/>uses crt;
vara,b,c,y:integer;
/>begin clrscr;
/>writeln('Введи значение a,b);
readln(a,b);
C: = A +B />c:=a+b;
y:=55*c;
/>writeln('y=',y);
Y: = 55* C readln;
end.
/>
/>(Вводим значение 5,3)
/>/>Ответ:440
Задание 2.Составить алгоритм обмена значений 2х переменных A и B
program as; Блок-схема
/>uses crt;
var a,b,c:integer;
/>/>begin clrscr;
writeln(‘Введизначение a,b');
/>readln(a,b);
c:=a;
C: = A;
A: = B;
B: = C; a:=b;
b:=c;
/>writeln('obmen',a,'-',b);
/>readln;
/>/>end.
(Вводимзначение 5,6)
Ответ: 6,5
Задание 3.Вычислить площадь огорода, имеющего форму прямоугольника, если известны стороныА и В
program as; Блок-схема
/>uses crt;
vara,b,c:integer;
/>/>begin clrscr;
writeln('Введистороны А и В ');
/>readln(a,b);
C: = (A + B)*2 c:=(a+b)*2;
writeln('Площадьогорода =',c);
/>readln;
/>/>end.
/>
/>(Вводим значение 5,6)
Ответ:22
Задание 4.Найти среднее арифметическое чисел x,y,z
program as; Блок-схема
/>uses crt;
varx,y,z:integer; d:real;
/>begin clrscr;
/>writeln('Bведи x,y,z');
/>readln(x,y,z);
D: =(X+Y+Z)/3 d:=(x+y+z)/3;
writeln(d:5:2);
/>readln;
/>/>/>end.
(Вводимзначение 5,6,7)
Ответ: 6.00
Задание 5.Найтимассу хлитровмолока, если известно, что плотность молока р кг/м3
program as; Блок-схема
/>uses crt;
varx,p,m:real;
/>/>begin clrscr;
/>writeln('Bведи х(литры),р(плотность)молока');
М:=Х/100*Р readln(x,p);
m:=x/100*p;
/>writeln(m);
/>readln;
/>end.
/>
(Вводимзначение 7л, 1030кг/м3)
Ответ: 7,21кг
Задание6.Объем цилиндра равен V, а площадь основания – S. Какова высотацилиндра H?
program as; Блок-схема
/>uses crt;
varv,s,h:real;
/>begin clrscr;
/>writeln('Введи объемцилиндра и площ. его осн. ');
/>readln(v,s);
H := V/S H:=v/s;
writeln('Высотацилиндра=',H);
/>readln;
/>/>/>end.
(Вводимзначение 10,5)
Ответ: 2м
Задание7.Дана длина куба а. Найти объем куба v и площадь его боковой поверхностиs.
/>
program as;
/>/>uses crt;
varv,s,a:real;
/>begin clrscr;
V:=a*a*a
S:=4*a*a writeln('Bведидлину ребра куба');
readln(a);
/>v:=a*a*a;
/>s:=4*a*a;
writeln(‘объем=’,v,’площ.бок.пов.=’,s);
/>readln;
/>end.
(Вводимзначение 5)
Ответ:v=125,s=100
Задание 8.Составить алгоритм вычисления y=22*((a +b)/2)
program as; Блок-схема
/>uses crt;
vara,b,c:integer; d,y:real;
/>begin clrscr;
/>writeln('Введи значение а,b');
/>readln(a,b);
C:= a +b c:=a+b;
/>
D:=c/2 d:=c/2;
y:=sqr(2)*d;
/>
Y:=(2*2)*d writeln(y:5:2);
readln;
/>/>/>/>end.
(Вводимзначение 5,5)
Ответ: 20
Задание9.Известна длина окружности.Найти площадь круга, огранич. этой окружностью
program as; Блок-схема
/>uses crt;
var a,b:real;
/>begin clrscr;
/>writeln('Введи длинуокужности');
/>readln(a);
B :=(A*A)*PI b:=(a*a)*pi;
/>writeln('Найти S круга=',b:5:2);
/>/>/>end.
(Вводимзначение 5)
Ответ:78,5
Задание10. Данонатуральное число n(n>9).Найти число единиц в нем
program as; Блок-схема
/>uses crt;
vara,d:integer;
/>begin clrscr;
/>writeln('Введинатуральное чисно');
/>readln(a);
D:=a mod 10 d:=a mod 10;
writeln('Числоединиц в нем=',d);
/>/>readln;
/>end.
/>
(Вводимзначение 6)
Ответ:единиц=6
Задание11.Данорасстояние в сантиметрах. Найти число полных метров в нем.
program as; Блок-схема
/>uses crt;
/>var a,m:integer;
/>begin clrscr;
writeln('Введирасстояние в сантиметрах');
/>readln(a);
M:=a div 100 m:=a div100;
/>writeln('Получи расстояние в метрах',m);
/>readln;
/>/>end.
(Вводимзначение 200)
Ответ: 2м
Задание12.Составить алгоритм вычисления y=7x2-3x+6
program as; Блок-схема
/>uses crt;
varx,y:integer;
/>/>begin clrscr;
writeln('Bведизначение х ');
/>
C:=7*x*x
D:=3*x readln(x);
y:=7*(sqr(x))-3*x+6;
/>writeln('Y=',y);
Y:=C-D+6 readln;
/>/>/>/>end.
(Вводимзначение 6)
Ответ: 240
Задание13.Каковобъем кислорода, содержащегося в комнате размером a*b*c,если кислородсоставляет 21% объема воздуха?
program as; Блок-схема
/>uses crt;
vara,b,c,v:real;
/>begin clrscr;
/>writeln('Bвeди a,b,c');
/>readln(a,b,c);
V:=0.21*a*b*c v:=0.21*a*b*c;
/>writeln('объем кислорода=',v);
/>readln;
end.
(Вводимзначение 5,6,7)
Ответ: 4.41
Задание14.Составить алгоритм вычисления A=x2+bx/2
/>
program as; Блок-схема
/>uses crt;
vara,b,x,z,s,v:real;
begin clrscr;
writeln('Введизначение x,b');
Z:=x*x*x*x*x readln(x,b);
S:=b*x z:=x*x*x*x*x;
s:=b*x;
V:=z+s v:=z+s;
A:=v/2;
A:=v/2 writeln('A=',a);
readln;
/>end.
/>(Вводим значение 2,3)
Ответ: 1.9
Задание15.Определитьвремя падения камня на поверхность земли с высоты h.
program as; Блок-схема
/>uses crt;
/>var g,t,h:real;
/>begin clrscr;
writeln('Введизначение h');
G:=9.81 readln(h);
t:=sqrt(2*h/g);
T:=sqrt(2*h/g) writeln('времяпадения=',t);
readln;
/>end.
/>(Вводим значение 10 м)
Ответ:1,4278с
Программа светвлениями
Задание 1.Даны2 целых числа, определить какое из них больше
Program as; Блок-схема
/>Uses crt;
Vara,b:integer;
/>/> Max:integer;
Begin clrscr;
/>/>Writeln(‘Введи 2 числа’);
/>/>Readln(a,b);
Max:=b
Max:=a If a>bthen max:=a else max:=b;
Writeln(‘Максимально=’,max);
/>/>Readln;
/>End.
/>(Вводим значение 5,6)
/>/>Ответ: 6
Задание 2.Известныстороны треугольника, определить равны ли его стороны (равноб) или разносторон.
program as; Блок-схема
/>
/>uses crt;
vara,b,c:integer;
/>/>begin clrscr;
/>writeln('Введи стороны ');
readln(a,b,c);
/>/>if (a=b) or (a=c) or (c=b) Да Нет
/>then writeln('равноб.')else writeln
/>/>('разност.');
/>/>readln;
/>end.
/>
(Вводимзначение 5,5,6)
Ответ:Равноб.
Задание 3.Проверить,принадлежит ли число, введенное с клавиатуры, интервалу (-5;3).
Program as; Блок-схема
/>Uses crt;
/>Var a,b,x:integer;
/>Begin clrscr;
Readln(x);
/>If (x>=-5) and (x
/>Writeln(‘да’) elsewriteln(‘нет’);
/>/>End.
/>(Вводим значение 2)
/>Ответ: Принадлежит /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
Задание4.Дано 2х зн. число. Определить входит ли в него цифра 3
Program as; Блок-схема
/>Uses crt;
/>Var a: integer;
/>Begin clrscr;
/>Writeln(‘Введи 2х зн. число’);
/>Readln(a);
If (a div10=3) or (a mod 10=3)
/>/>Then writeln(‘Входит’);
Elsewriteln(‘Не входит’);
Readln;
End./> /> /> /> /> /> />
/>/>(Вводим значение 53)
Ответ: Входит
/>
Задание 5.Дано 2х зн. число. Определить какая из его цифр больше
Program as; Блок-схема
/>Uses crt;
/>Var a,d,e, max: integer;
/>Begin clrscr;
/>Writeln(‘Дано 2х зн. число’);
D:=a div 10
E:=a mod 10 Readln(a);
D:=a div 10;
E:=a mod 10;
/>If d>e then max:=d else max:=e;
/>Writeln(‘Макс=’,max);
/>/>Readln;
Max:=e
Max:=d End.
/>
/>(Вводим значение 96)
/>Ответ: 9/> /> /> /> /> /> /> /> />
Задание 6.Даны2 целых числа А и В, выяснить яв. ли 2 числа, четными
Program as; Блок-схема
/>/>Var a,b: integer;
Begin clrscr;
/>/>Writeln(‘Введи 2 целыхчисла А и В’);
/>Readln (a,b);
If a mod 2=0then writeln(‘четное’)
/>/> else writeln(‘не четное’);
/>/>/>/>If b mod 2=0 thenwriteln(‘четное’);
/> else writeln(‘не четное’);
/>Readln;
/>/>End.
(Вводимзначение 5,6)
/>/>/>/>Ответ: не четное, четное
/>
Задание7.Решить пример -4x2+8,x
Y=
x2+3x+4,x>0 Блок-схема
/>
/>Program as;
Uses crt;
/>Var x,y:integer;
Begin clrscr;
/>Writeln(‘Введи аргументx’);
/>/>Readln(x);
If x>0then Y:=-4*sqr(x)+8
Y:=sqr(x)+3*x+4
Y:=-4*sqr(x)+8 elseY:=sqr(x)+3*x+4;
/>/>writeln(‘Y=’,y);
/>/>readln;
end.
/>
Задание 8. Данытри вещественных числа a,b,c. Проверить выполняется ли неравенство a
program as; Блок-схема
/>uses crt;
/>var a,b,c:integer;
begin clrscr;
/>writeln(‘Введи три числа’);
readln(a,b,c);
/>if (a
elsewriteln(‘не верно’);
readln;
/>/>end.
/>/>(Вводим значение 5,6,7)
/>Ответ: выполняется
/>
Задание 9.Данытри вещественных числа. Определить, имеется ли среди них хотя бы пара равныхмежду собой чисел
Program as; Блок-схема
/>/>Uses crt;
Vara,b,c:integer;
/>Begin clrscr;
Writeln(‘Введи3 числа’);
/>Readln(a,b,c);
/>If (a=b) or (a=c) or (b=c) thenwriteln(‘имеется’)
/> else writeln(‘неимеется’);
end.
/>/>(Вводим значение 5,6,7)
/>/>Ответ: не имеется
/>
Задание10.Дановещественное число. Вывести на экран его абсолютную величину
Program as; Блок-схема
/>/>Uses crt;
Var a:real;
/>Begin clrscr;
/>Readln(a);
if (a>0)or (a
/>/>readln;
/>end.
/>
/>(Вводим значение 56)
/>Ответ: получаем абсол. величину.
Задание11.Даны 2 целых числа, определить какое из них меньше
Program as; Блок-схема
/>Uses crt;
Vara,b:integer;
/>/> Min:integer;
Begin clrscr;
/>/>Writeln(‘Введи 2 числа’);
/>/>Readln(a,b);
min:=b
min:=a If aWriteln(‘Минимальное=’,min);
/>/>Readln;
/>End.
/>(Вводим значение 5,6) Ответ:5
Задание12. Даны2 числа. Если кв.корень из второго числа меньше первого числа, то увеличитьвторое число в 5 раз
program as; Блок-схема
/>uses crt;
/>var a,b,d,c:real;
/>begin clrscr;
writeln(‘Введи2 числа’);
readln(a,b);
D:=sqrt(a)
C:=sqrt(b) d:=sqrt(a);
c:=sqrt(b);
/>if (d
writeln(‘увеличить2 число в 5 раз’,c*c*c*c*c:5:2)
/>/> else writeln(‘нет решения’);
readln;
/>/>end.
/>
/>Ответ: нет решения
/>
Задание13. Даночисло. Если это число чётное, то /2 если нет, то *2
Program as; Блок-схема
/>/>Var a: integer;
Begin clrscr;
/>/>Writeln(‘Введи число’);
Readln (a);
/>If a mod 2=0 thenwriteln(a/2)
/>/> else writeln(a*2);
/>/>Readln;
/>/>End.
/>
(Вводимзначение 5)
Ответ:10
Задание14.Даны4 вещественных числа. Найти сумму тех чисел, которые больше 5
Program as; Блок-схема
/>Uses crt;
Vara,b,c,d,k,z,x,v:integer;
/>Begin clrscr;
/>/>Writeln(‘Введи 4 числа’);
/>Readln(a,b,c,d);
/>If a>5 then k:=a;
/>/>/>/>If b>5 then z:=b;
/>/>If c>5 then x:=c;
If d>5then v:=d;
Writeln(‘Общаясумма=’,k+z+x+v);
/>End.
/>
/>/>(Вводим значение 6,6,6,6)
/>Ответ: 24
Задание15.Даны3 числа a,b,c. Найти максимальное
Program as; Блок-схема
/>Uses crt;
Vara,b,c:integer;
/>/> Max,max1:integer;
/>Begin clrscr;
/>Writeln(‘Введи 3 числа’);
/>/>Readln(a,b,c);
Max:=b
Max:=a Ifa>b then max:=a else max:=b;
/>/>If max>c then max1:=max else max1:=c;
/>/>Writeln(‘Максимально=’,max1);
/>/>Readln;
Max1:=c
Max1:=max End.
/>/>(Вводим значение 5,6,7)
/>/>Ответ: 7
/>
Циклическаяпрограмма
Задание1.Напечатать “столбиком”: все целые числа от 20 до 35
Program as; Блок-схема
/>Uses crt;
Vara:integer;
/>
A:=20 Beginclrscr;
For a:=20 to35 do writeln(a);
/>/>/>Readln;
/>/>end.
/> /> /> /> /> /> /> /> /> /> /> /> /> /> />
Задание2.Напечатать “столбиком”: квадраты всех целых чисел от 10 до b (значение bвводится с клавиатуры, причем b>10)
Program as; Блок-схема
/>Uses crt;
Vara,j:integer;
/>
A:=10 Beginclrscr;
Writeln(‘Введичисло’);
/>/>Readln(j);
For a:=10 toj do writeln(sqrt(a):5:2);
/>/>Readln;
end.
/>
/>/> /> /> /> /> />
A+1 /> /> />
Задание3.Найти сумму квадратов всех целых чисел от 10 до 50
/>
Program as;
/>Uses crt;
A:=10 Vara,s:real;
/>/>Begin clrscr;
/>/>For a:=10 to 50 do s:=sqr(a)+s;
Writeln(s);
S:=sqr(a)+s end./> /> /> /> /> /> /> /> /> /> /> /> /> /> />
Задание4.Одна штука некоторого товара стоит 20 тенге. Напечатать таблицу стоимости2,3…20 штук этого товара
Блок-схема
/>Program as;
A:=2
B:=20 />Uses crt;
Vara,b:integer;
/>Begin clrscr;
/>/>B:=20;
/>/>For a:=2 to 20 do writeln(a*b);
Readln;
/>end./> /> /> /> /> /> /> /> />
Задание 5. Найтипроизведение всех целых чисел от 1 до А (значение А вводится с клавиатуры;1
program as; Блок-схема.
/>uses crt;
P:=1
B:=1
)+s />var a,b,p:integer;
begin clrscr;
/>p:=1;
/>readln(a);
/>/>for b:=1 to a do if(1
p:=p*a;
/>/>writeln(p);
readln;
/>end. /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
P:=p*a (Вводимзначение 4)
/> Ответ:256
/>
/>
/>
Задание6.Напечатать программу, печатающую таблицу значений функции y=cos2x на отрезке[0;1] с шагом h=0,1
Program as; Блок-схема
/>Uses crt;
/>Var y,x:real;
X:=0 Beginclrscr;
X:=0;
/>While x
/>/>Writeln(y:5:2);
Y:=cos(2*x)
X:=x+0,1 X:=x+0,1;
End;
/>/>/>/>End.
Задание7.Напечатать программу, вычисления факториала
Program as; Блок-схема
/>Uses crt;
/>Var i,n:integer;
F:=1;
I:=1; f:real;
Begin clrscr;
/>Readln(n);
/>F:=1; i:=1;
/>/>While i
F:=f*I;
I:=succ(i); i:=succ(i);
end;
/>Writeln(‘факториалот’,n,’равен’,f);
/>End.
Задание 8.Программаподсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+…1/N
Program as; Блок-схема
/>Uses crt;
S:=0;
N:=0; />Var s:real;
N:integer;
Begin clrscr;
/>S:=0;N:=0;
/>/>/>While n
S:=s+1/N;
End;
N:=n+1;
S:=s+1/N;
Writeln(s);
Readln;
/>End./> /> /> /> /> /> /> /> />
Задание9.Вычислить наибольший общий делитель двух натуральных чисел А и В.
Program as; Блок-схема
/>Uses crt;
/>/>Var a,b:integer;
Begin clrscr;
/>/>writeln(‘Введи 2 натур.Числа’);
/>/>readln(a,b);
/>While ab do ifa>b then a:=a-b
/>/> Else b:=b-a;
A:=a-b
B:=b-a Writeln(‘НОД=’,a);
/>/>Readln;
/>/>End.
/>
Задание10. Даныцелые числа А и В (а>b).Определить: Результат целочисленного деления А на В,не используя стандартную операцию целочисленного деления
Program as; Блок-схема
/>Uses crt;
/>/>Var a,b,n:integer;
Begin clrscr;
/>/>writeln(‘Введи 2числа,a>b’);
/>/>readln(a,b);
N:=n+1;
A:=a-b; n:=0;
While a
/> N:=n+1;
A:=a-b;
/>/>/>\ End;
Writeln(‘результат=’,n);
Readln;
End.
Задание11.Напишитепрограмму, которая вводит целые числа с клавиатуры и складывает их, пока небудет введено число 0
Program as; Блок-схема
/>/>Uses crt;
VarN,s:integer;
S:=0; Beginclrscr;
/>S:=0;
/>/>Repeat write (‘Введи число’);
/>
S:=s+n; Readln(n);
/>S:=s+n;
/>Until n=0;
Writeln(‘S=’,s);
Readln;
/>End.
Задание12. Напечатайте20 первых степеней числа 2
Program as; Блок-схема
/>/>Uses crt;
VarN,s:longint;
S:=1;n:=1; Beginclrscr;
/>/>
S:=s*2;
N:=n+1; S:=1; n:=1;
Repeats:=s*2;
Write(s,’ ‘);
/> N:=n+1;
/>Until n>20;
Readln;
/>End.
/>
Задание13. Известныоценки по информатике 20 учеников класса. В начале списка перечислены всепятерки, затем все остальные оценки. Сколько учеников имеют по инфор-ке оценку«5»?
Program as; Блок-схема
/>/>Uses crt;
/>Var x,n:integer;
/>Begin clrscr;
Write(‘Введиоценку’);
/>Readln(x);
/>/>N:=0;
/>
N:=n+1; While x=5 dobegin
N:=n+1;
/> Write(‘Введи оценку’);
/>/> Readln(x);
End;
Writeln(‘имеютотлично’,n,’учеников’);
End.
Задание14.Вывестина экран таблицу умножения.
Program as; Блок-схема
/>/>Uses crt;
VarI,j:integer;
I:=1 Beginclrscr;
For i:=1 to 9do
/>/>/> For j:=1 to 9 dowriteln(I,*,j,’ ‘,i*j);
/>/>Readln;
/>/>/>/>/>/>/>
J:=1 />End.
Задание15.Составитьпрограмму, печатающую на экране все четные числа в диапазоне от 100 до 999.
Program as; Блок-схема
/>Uses crt;
/>Var a:integer;
A:=100 Beginclrscr;
/>/>/>For a:=100 to 999 do
/> If a mod 2=0 then writeln(a);
/>/>End. /> /> /> /> /> /> /> /> />
Массивы
Задание 1.Создатьодномерный массив и найти сумму четных элементов и произведение нечетныхэлементов
program as;
uses crt;
vara:array[1..5] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 5do a[i]:=random(8);
for i:=1 to 5do begin
writeln;
for i:=1 to 5do write(a[i]:5);
end;
writeln;
for i:=1 to 5do
if a[i] mod2=0 then
s:=s+a[i]; writeln;
p:=1;
for i:=1 to 5do
if a[i] mod20 then p:=p*a[i];
writeln;
writeln(s);
writeln(p);
end.
Задание2.Составить программу формирования одномерного массива и вычисления произведениявсех элементов массива
program as;
uses crt;
vara:array[1..5] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 5do a[i]:=random(8);
for i:=1 to 5do begin
writeln;
for i:=1 to 5do write(a[i]:5);
end;
writeln;
p:=1;
for i:=1 to 5do p:=p*a[i];
writeln(p);end.
Задание 3.Данодномерный массив вычислить произведение всех четных элементов массива
program as;
uses crt;
vara:array[1..5] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 5do a[i]:=random(8);
for i:=1 to 5do begin
writeln;
for i:=1 to 5do write(a[i]:5);
end;
writeln;
p:=1;
for i:=1 to 5do if a[i] mod 2=0 then p:=p*a[i];
writeln(p);
end.
Задание 4.Данмассив вычислить сумму всех элементов больше 5
program as;
uses crt;
vara:array[1..5] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 5do a[i]:=random(88);
for i:=1 to 5do begin
writeln;
for i:=1 to 5do write(a[i]:5);
end;
writeln;
for i:=1 to 5do if a[i]>5 then p:=p+a[i];
writeln(p);
readln;
end.
Задание5.Подщитать кол-во элементов равных 7
program as;
uses crt;
vara:array[1..7] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 7do a[i]:=random(88);
for i:=1 to 7do begin
writeln;
for i:=1 to 7do write(a[i]:5);
end;
writeln;
for i:=1 to 7do if a[i]=7 then p:=p+1;
writeln(p);
readln;
end.
Задание 6. Данмассив умножить все элементы на 20
program as;
uses crt;
vara:array[1..7] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 7do a[i]:=random(88);
for i:=1 to 7do begin
writeln;
for i:=1 to 7do write(a[i]:5);
end;
writeln;
for i:=1 to 7do
write(a[i]*20:3);
readln;
end.
Задание 7. Данмассив все четные элементы заменить на 2, а не четные удвоить
program as;
uses crt;
vara:array[1..7] of integer;
i,s,p:integer;
begin clrscr;
for i:=1 to 7do a[i]:=random(88);
for i:=1 to 7do begin
writeln;
for i:=1 to 7do write(a[i]:5);
end;
writeln;
for i:=1 to 7do if a[i] mod 2=0 then writeln(sqr(a[i]));
for i:=1 to 7do if a[i] mod 20 then writeln(2*a[i]);
readln;
end.
Задание 8. Данодномерный массив найти максимальный элемент
program as;
uses crt;
vara:array[1..15] of integer;
i,max:integer;
begin clrscr;
for i:=1 to15 do a[i]:=random(88);
for i:=1 to15 do begin
writeln;
for i:=1 to15 do write(a[i]:5);
end;
writeln;
max:=1;
for i:=1 to15 do if a[i] >a[max] then max:=i;
writeln(a[max]);
readln;
end.
Задание 9. Данодномерный массив найти min элемент
program as;
uses crt;
vara:array[1..15] of integer;
i,min:integer;
begin clrscr;
for i:=1 to15 do a[i]:=random(88);
for i:=1 to15 do begin
writeln;
for i:=1 to15 do write(a[i]:5);
end;
writeln;
min:=1;
for i:=1 to15 do if a[i]
writeln(a[min]);
readln;
end.
Задание10. Данмассив скопировать все его элементы в другой массив такого же элемента
program as;
uses crt;
vara:array[1..15] of integer;
I,b:integer;
begin clrscr;
for i:=1 to15 do a[i]:=random(88);
for i:=1 to15 do begin
writeln;
for i:=1 to15 do write(a[i]:5);
end;
writeln;
for i:=1 to15 do a[i]:=b[i];
for i:=1 to15 do write(a[i]);
writeln(‘скопир’);
for i:=1 to15 do write(b[i]:4);
readln;
end.
Задание11. Составитьпрограмму обмена первого и третьего элем. строки матрицы
program as;
uses crt;
vara:array[1..15] of integer;
I,b,c:integer;
begin clrscr;
for i:=1 to15 do a[i]:=random(88);
for i:=1 to15 do begin
writeln;
for i:=1 to15 do write(a[i]:5);
end;
writeln;
c:=a[1];
a[1]:=a[3];
a[3]:=c;
for i:=1 to15 do write(a[i]:5);
end.
Задание12. Дан2 мерный массив. Вывести на экран все элементы второй строки
program as;
uses crt;
vara:array[1..4,1..4] of integer;
i,j:integer;
begin clrscr;
for i:=1 to 4do
for j:=1 to 4do a[i,j]:=random(99);
for i:=1 to 4do begin
writeln;
for j:=1 to 4do write(a[i,j]:5);
end;
writeln;
writeln;
for j:=1 to 4do write(a[2,j]:3);
end.
Задание13. Данодномерный массив. Поменять содержимое двух произвольных ячеек
program as;
uses crt;
var a:array[1..10] of integer;
i,k,m:integer;
begin clrscr;
writeln;
for i:=1 to10 do a[i]:=random(99);
for i:=1 to10 do write(a[i]:5);
writeln;
writeln;
k:=a[2];
a[2]:=a[4];
a[4]:=k;
for i:=1 to10 do write(a[i]:5);
end.
Задание14. Дан2 мерный массив. Заменить все элементы кратные 5, нулями
program as;
uses crt;
vara:array[1..5,1..5] of integer;
i,j,s:integer;
begin clrscr;
for i:=1 to 5do
for j:=1 to 5do a[i,j]:=random(6);
for i:=1 to 5do begin
writeln;
for j:=1 to 5do write(a[i,j]:5);
end;
writeln;
for i:=1 to 5do
for j:=1 to 5do begin
if a[i,j] mod5=0 then a[i,j]:=0;
end;
for i:=1 to 5do begin writeln;
for j:=1 to 5do write(a[i,j]:5);
end;
end.
Задание15. Данмассив вычислить сумму всех элементов больше 20
program as; end;
uses crt; writeln;
vara:array[1..10] of integer; for i:=1 to 10 do if a[i]>20 then p:=p+a[i];
i,s,p:integer; writeln(p);
begin clrscr; readln;
for i:=1 to10 do a[i]:=random(88); end.
for i:=1 to10 do begin
writeln;
for i:=1 to10 do write(a[i]:5);
Процедурыи функции
Задание 1. Составитьпрограмму вычисления числа сочетания C= n!(n-m)!
program as;
uses crt;
varm,n,p1,p2,p3:integer;
c:real;
procedurefactor(x:integer; var p:integer);
vari:integer;
begin p:=1;
for i:=1 to xdo p:=p*i;
end;
begin clrscr;
writeln('Vvedim,n');
readln(m,n);
factor(m,p1);
factor(n,p2);
factor(n-m,p3);
c:=p1/(p2*p3);
writeln(c:5:2);
end.
Задание 2. Составитьпрограмму нахождения меньшего из 5 заданных чисел, используя процедуру нахожденияменьшего из 2 заданных чисел
Program as;
Uses crt;
Vara,b,c,d,e,z1,z2,z3,z4,z5:integer;
Proceduremin(x,y:integer; var z:integer);
Begin;
If x
Writeln(z);
End;
Begin clrscr;
Readln(a,b,c,d,e);
Min(a,b,z1);
Min(z1,c,z3);
Min(z3,d,z4);
Min(z4,e,z5);
End.
Задание 3. Написатьпрограмму нахождения суммы большего и меньшего из 3 заданных чисел
Program as;
Uses crt;
Vara,b,c,d,v,v1,max,max1,min,min1:integer;
Procedurema(x,y,z:integer; var v:integer);
Begin clrscr;
If x
If max
If x>ythen min:=x else min:=y;
If min>z thenmin1:=min else min1:=z;
V:=min1+max1;
End;
Begin clrscr;
Readln(a,b,c);
Ma(a,b,c,v1);
Writeln(v1);
End.
Задание 4. Составитьпрограмму вычисления суммой фактор. всех четных чисел от m до n
program as;
uses crt;
vara,b,c,n,m,s,k,p1,p:integer;
procedurefactor(x:integer; var p:integer);
vari:integer;
begin p:=1;
for i:=1 to xdo begin p:=p*I; end;
writeln(p);
end;
begin clrscr;
writeln(‘Vvedi n,m’);
readln(n,m);
for k:=n to mdo if k mod 2=0 then begin
factor(k,p1);
s:=s+p1;
end;
writeln(s);
end.
Задание 5. Даны5 чисел, найти их наибольший общий делитель, используя процедуру. Для алгоритмаих вида
program as;
uses crt;
vara,b,c,d,e,z1,z2,z3,z:integer;
procedureE(x,y:integer; var z:integer);
begin
whilexy do if x>y then x:=x-y
else y:=y-1;
z:=x;
end;
begin clrscr;
writeln(‘Vvedi a,b,c,d,e’);
readln(a,b,c,d,e);
E(a,b,z);
E(c,d,z1);
E(z,z1,z2);
E(z2,e,z3);
writeln(z3);
end.
M!
Задание 6.Составить программу вычисления числа сочетания C= n!(n-m)! с помощью функции
program as;
uses crt;
var f1,f2,f3,m,m1,n:integer;
c:real;
Functionfactor(n:integer):integer;
varp,i:integer;
begin p:=1;
for i:=1 to ndo p:=p*i;
factor:=p;
end;
begin
read(m, n);
f1:=factor(m);
f2:=factor(n);
m1:=n-m;
f3:=factor(m1);
c:=f1/(f2*m1);
writeln(c:5:2);
end.
Задание 7. НайтиНОК двух чисел по формуле НОК(a,b)=НОД
Program as;
Uses crt;
Var m,n,z,nod,a,nok:integer;
Procedure F(a,b:integer; var nod:integer);
Begin
Whileab do if a>b then a:=a-b else b:=b-a;
Nod:=a;
End;
Begin clrscr;
Readln(m,n);
F (m,n,z);
Nok:= trunk(z/(m*n));
Writeln(nok);
End.
Задание 8. Трехугольникзадан с координ. своих вершин. Составить программу вычисления его периметра
Program as;
Uses crt;
Vara1,a2,c1,c2,b1,b2:integer;
d1,d2,d3,d:real;
c,p:real;
procedureF(x1,x2,y1,y2:integer; var d:read);
begin
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln(d:5:2);
end;
begin clrscr;
readln(a1,a2,b1,b2,d1,d2);
F(a1,a2,c1,c2,d1);
F(c1,c2,b1,b2,d2);
F(d1,d2,a1,a2,d3);
P:=d1+d2+d3;
Writeln(p:8:5);
End.
Задание 9.Увеличить вдвое все элементы массива
program as;
const n=10;m=20;
type T1 =array[1..n] of integer;
T2 =array[-m..m] of integer;
var A: T1; B: T2; k: integer;
ProcedureDouble(var X: array of integer);
var i: byte;
begin
for i:=0 toHigh(X)-1 do X[i]:=X[i]*2;
end;
begin
for k:=1 to ndo read(A[k]);
for k:=-m tom do read(B[k]);
Double(A);
Double(B);
Double(k);
writeln('k=',k);
for k:=1 to ndo write(A[k],' ');
writeln;
for k:=-m tom do write(B[k],' ');
end.
Задание 10.Использование типизированных констант
programtyped_const;
varN:integer;
procedureTest;
constk:integer=1;
begin
if k
begin
writeln(k,'-йвызов процедуры');
k:=k+1;
Test;
end
elsewriteln('последний вызов процедуры');
end;
begin
read(N);
if N>0then Test;
end.
Задание 11. ВычислитьN-е число Фиббоначчи
program Fib;
var n:byte;
functionF(k:byte):word;
begin
if k
end;
begin
write('введитеномер числа Фиббоначчи ');
readln(N);
writeln(N,'-ечисло Фиббоначчи =',F(N));
readln
end.
Задание12. Даны5 чисел, найти их наибольший общий делитель, используя процедуру. Для алгоритмаих вида
program as;
uses crt;
vara,b,c,d,e,z1,z2,z3,z:integer;
procedureE(x,y:integer; var z:integer);
begin
whilexy do if x>y then x:=x-y
else y:=y-1;
z:=x;
end;
begin clrscr;
writeln(‘Vvedi a,b,c,d,e’);
readln(a,b,c,d,e);
E(a,b,z);
E(c,d,z1);
E(z,z1,z2);
E(z2,e,z3);
writeln(z3);
end.
Задание13. Трехугольникзадан с координ. своих вершин. Составить программу вычисления его периметра
Program as;
Uses crt;
Vara1,a2,c1,c2,b1,b2:integer;
d1,d2,d3,d:real;
c,p:real;
procedureF(x1,x2,y1,y2:integer; var d:read);
begin
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln(d:5:2);
end;
begin clrscr;
readln(a1,a2,b1,b2,d1,d2);
F(a1,a2,c1,c2,d1);
F(c1,c2,b1,b2,d2);
F(d1,d2,a1,a2,d3);
P:=d1+d2+d3;
Writeln(p:8:5);
End.
Задание14.Составить программу для вычисления определенного интеграла
tk
2t
I= S---------------dt
sqrt(1-sin2t)
tn
вычисляетсяпо формуле:
ISimps=2*h/3*(0.5*F(A)+2*F(A+h)+F(A+2*h)+2*F(A+3*h)+…
+2*F(B-h)+0.5*F(B))
ProgramINTEGRAL;
type
Func=function(x: Real): Real;
var
I,TN,TK:Real;
N:Integer;
{$F+}
Function Q(t:Real): Real;
begin
Q:=2*t/Sqrt(1-Sin(2*t));
end;
{$F-}
ProcedureSimps(F:Func; a,b:Real; N:Integer; var INT:Real);
var
sum, h: Real;
j:Integer;
begin
if Odd(N)then N:=N+1;
h:=(b-a)/N;
sum:=0.5*(F(a)+F(b));
for j:=1 toN-1 do
sum:=sum+(jmod 2+1)*F(a+j*h);
INT:=2*h*sum/3
end; beginWriteLn(' ВВЕДИ TN,TK,N');
Read(TN,TK,N);
Simps(Q,TN,TK,N,I);
WriteLn('I=',I:8:3)
end.
Задание15. Записатьотрезок -X(-1,-10), с помощью функции
program as;
functionA(x:integer):integer;
begin
a:=-x;
end;
vari:integer;
begin
for i:=1 to10 do writeln(a(i));
end.
Файловые данные в Паскале
Задание 1. Дантекстовый файл, посчитать кол-во строк в нем
Program as;
Uses crt;
Var F:text;a:string; s:integer;
Begin clrscr;
Assign(f,’a1.txt’);
Reset (f);
While not(eof(f)) do begin
Readln(f,a);
S:=s+1; end;
Close(f);
Writeln(s);
End.
Задание 2. Создатьтекстовый файл и записать в него фразу: «Здравствуй Мир!»
Program as;
Uses crt;
Var F:text;a:string;
Begin clrscr;
Assign(f,’a.txt’);
Rewrite (f);
Readln(a);
Writeln(f,a);
Close(f);
End.
Задание 3.Создать текстовый файл и записать в него слово «Привет»
Program as;
Uses crt;
Var F:text;a:string;
Begin clrscr;
Assign(f,’A.txt’);
Rewrite (f);
Readln(a);
Writeln(f,a);
Close(f);
End.
Задание 4.Создать текстовый файл и записать в него 5 одинаковых чисел
Program as;
Uses crt;
Var F:text;a:string; i:integer;
Begin clrscr;
Assign(f,’text.txt’);
Rewrite (f);
For i:=1 to 5do
Writeln(f,5);
Close(f);
End.
Задание 5.Создать текстовый файл и записать в него все числа от 10 до 16
Program as;
Uses crt;
Var F:text;a:string; i:integer;
Begin clrscr;
Assign(f,’text.txt’);
Rewrite (f);
For i:=10 to16 do
Writeln(f,i);
Close(f);
End.
Задание 6. Создатьтекстовый файл и записать в него 5 одинаковых слов
Program as;
Uses crt;
Var F:text;a:string;
Begin clrscr;
Assign (f,’A.txt’);
Rewrite (f);
Readln(a);
Writeln(f,a);
Close(f);
End.
Задание 7. Дантекстовый файл перенести его строки в другой файл
Program as;
Uses crt;
Var f,t:text;a:string;
Begin clrscr;
Assign(f,’202as.txt’);assign(t,’201as.txt’);
Reset(f);rewrite(t);
Whilenot(eof(f)) do begin
Readln(f,a);
Writeln(t,a);
End;
Close(f);
Close(t);
Readln;
End.
Задание 8. Имеетсятекстовый файл, напечатать все его строки начиная с буквы Т
Program as;
Uses crt;
Var f:text;a:string;
Begin clrscr;
Assign(f,’202as.txt’);
Reset(f);
Whilenot(eof(f)) do begin
Readln(f,a);
If copy(a,1,1)=’T’ then
Writeln(a);
End;
Close(f);
Readln;
End.
Задание 9. Имеетсятекстовый файл посчитать кол-во строк начинающихся на букву А
Program as; readln(f,a);
Uses crt; ifcopy(a,1,1)=’A’ then k:=k+1;
Var F:text;a:string; k:integer; end;
Begin clrscr; close(f);
Assign(f,’abc.txt’);writeln(k);
Reset(f); end.
Whilenot(Eof(f)) do begin
Задание10. Всечетные строки этого файла записать во 2 файл, а не четные в 3 файл
Program as;
Uses crt;
VarF,t,g:text; a:string; k:integer;
Begin clrscr;
Assign(f,’abc.txt’);assign(t,’cop.txt’); Assign(g,’cap.txt’);
Reset(f);rewrite(t); rewrite(g);
Whilenot(Eof(f)) do begin
Readln(f,a);
K:=k+1;
If k mod 2=0then writeln(t,a) else writeln(g,a);
End;
Close(f);close(t); close(g);
End.
Задание11. Найтисумму элементов одномерного массива рез-т записать в текстовый файл
Program as;
Uses crt;
Var f:text;a:array[1..10] of integer; i,s:integer;
Begin clrscr;
Writeln(‘Вводмассива’);
Assign(f,’abc.txt’);rewrite(f);
For i:=1 to10 do begin write(‘Введи’,I,’ элемент массива’);
Readln(a[i]);
End;
Writeln;
For i:=1 to10 do s:=s+a[i];
Writeln(f,s);
Close(f);
End.
Задание12. Создатьтекстовый файл и записать в него все числа от 5 до 25
Program as;
Uses crt;
Var F:text;a:string; i:integer;
Begin clrscr;
Assign(f,’text.txt’);Rewrite (f);
For i:=5 to25 do
Writeln(f,i);
Close(f);
End.
Задание13. Данослово удвоить его каждую букву и записать его в текст. файл
Program as;
Uses crt;
Var f:text;a:string; I,s:integer;
Readln(a);
For i:=1 tolength (a)*2 do begin insert
Copy(a,I,1),a,i);
I:=i+1;
End;
Writeln(f,a);
Close(f);
End.
Задание14.Имеется текстовый файл посчитать кол-во строк начинающихся на букву М
Program as;
Uses crt;
Var F:text;a:string; k:integer;
Begin clrscr;
Assign(f,’abc.txt’);
Reset(f);
Whilenot(Eof(f)) do begin
readln(f,a);
ifcopy(a,1,1)=’М’ then k:=k+1;
end;close(f);
writeln(k);
end.
Задание 15.Создать текстовый файл и записать в него 6 одинаковых чисел
Program as;
Uses crt;
Var F:text;a:string; i:integer;
Begin clrscr;
Assign(f,’text.txt’);
Rewrite (f);
For i:=1 to 6do
Writeln(f,6);
Close(f);
End.
Записив Паскале
Задание 1. Составить список учебнойгруппы, включающей 25 человек. Для каждого учащегося указать дату рождения, годпоступления в техникум, курс, группу, оценки каждого года обучения. Информациюо каждом учащемся оформить в программе в виде записи. Совокупность записейобъединить в массив.
Составитьпрограмму, которая обеспечивает ввод полученной информации, распечатку ее ввиде таблицы, а также распечатку информации о отличниках
ProgramPascal;
Uses crt;
typestudent=record
fio: string;
d_r:1..31; {деньрождения}
m_r:1..12; {месяцрождения}
god_r:1965..1975;{год рождения}
god_p:2004..2008; {год поступления}
group:string;{название группы}
ocenki:array[1..3,1..5]of integer; {оценки по трем предметам}
end;
var
s1:array[1..25] of student;
i,j,x:integer;
ch:char;
f:boolean;
begin
clrscr;
for i:=1 to25 do begin
writeln('Сведенияо ',i,' студенте');
with s1[i] dobegin
write('ФИО:');readln(fio);
write('Датарождения:… г.');
x:=wherex;
gotoxy(x-13,wherey);read(d_r);
gotoxy(x-10,wherey-1);read(m_r);
gotoxy(x-7,wherey-1);read(god_r);
if keypressedthen begin
ch:=readkey;
if ch=#0 thench:=readkey;
end;
write('Годпоступления: ');readln(god_p);
write('Группа:');readln(group);
j:=0;
for i:=god_pto 2008 do begin
j:=j+1;
writeln('Оценкиза ',i,' год:');
write('Математика:');readln(ocenki[1,j]);
write('Информатика:');readln(ocenki[2,j]);
write('История:');readln(ocenki[3,j]);
end;
end;
writeln;
end;
writeln('списокотличников');
for i:=1 to25 do begin
with s1[i] dobegin
j:=0;
f:=true;
for i:=god_pto 2008 do begin
j:=j+1;
ifnot((ocenki[1,j]=5) and (ocenki[1,j]=5) and (ocenki[1,j]=5)) then f:=false;
end;
if f=truethen writeln(fio,', группа ',group,', год поступления ',god_p);
end;
end;
writeln('Длявыхода нажмите Enter');
readln;
end.
Задание 2. Разработать программуформирования файла, содержащего сведения о студентах. Каждый элемент этогофайла должен содержать следующие данные: номер группы; номер в группе посписку; фамилию, имя, отчество; год рождения; оценки за последнюю сессию
ProgramPascal;
Uses crt;
Constfname='students.dat';
n=5; {количествопредметов за последнию сессию}
Typest=record
n_group:integer;{номер группы}
n_sp:integer; {номер в группе по списку}
fam:string; {фамилия}
im:string; {имя}
ot:string; {отчество}
god_r:integer;{год рождения}
oc:array[1..n] of integer; {оценки за последнию сессию}
end;
Vart:array[1..30] of st;
i,ch,j:integer;
h: file ofst;
begin
write('Введитеколичество студентов в группе: '); readln(ch);
for i:=1 toch do begin
writeln('Сведенияо ',i,' студенте');
write('Номергруппы: '); readln(t[i].n_group);
write('Номерв группе по списку: '); readln(t[i].n_sp);
write('Фамилия:'); readln(t[i].fam);
write('Имя:'); readln(t[i].im);
write('Отчество:'); readln(t[i].ot);
write('Годрождения: '); readln(t[i].god_r);
writeln('Оценкиза последнию сессию: ');
for j:=1 to ndo begin
case j of
1:write('Математика:');
2:write('Физика:');
3:write('Химия:');
4:write('Культурология:');
5:write('История:');
end;
readln(t[i].oc[j]);
if not((t[i].oc[j]>0) and (t[i].oc[j]
writeln('Неверновведена оценка! Повторите ввод.');
j:=j-1;
end;
end;
writeln;
end;
Assign(h,fname);
{$I-}
reset(h);
IfIoresult0 then rewrite(h);
{$I+}
for i:=1 toch do write(h,t[i]);
close(h);
writeln('Данныезанесены в файл ',fname);
readln;
end.
Задание 3. В ГИБДД имеется следующаяинформация об автомобилях и их владельцах:
а) маркамашины;
б) номермашины;
в) Фамилиявладельца.
Необходимоорганизовать поиск количества автомобилей определенной марки. Информацию обавтомобилях и их владельцах оформить в виде записей, хранимых в файле. Вводданных в запись и сохранение записи в файле
ProgramN10_1;
Uses Crt;
Constfname='spisok.dat';
{Имя файла, вкоторый будет производиться запись}
TypePerson=record
marka:string;
number:string;
familia:string;
end;
Varauto:array[1..5] of person;
i:integer;
h: file ofperson;
begin
Clrscr;
auto[1].marka:='Мерседес';
auto[1].number:='235';
auto[1].familia:='Иванов';
auto[2].marka:='Мерседес';
auto[2].number:='289';
auto[2].familia:='Петров';
auto[3].marka:='Волга';
auto[3].number:='365';
auto[3].familia:='Сидоров';
auto[4].marka:='Жигули';
auto[4].number:='896';
auto[4].familia:='Кузнецов';
auto[5].marka:='Вольво';
auto[5].number:='957';
auto[5].familia:='Тимофеев';
Assign(h,fname);
{$I-}
reset(h);
IfIoresult0 then rewrite(h);
{$I+}
for i:=1 to 5do begin
write(h,auto[i]);
end;
writeln('Данныезанесены в файл ',fname);
write('НажмитеEnter');
readln;
end.
Выполнениезадания
ProgramN10_2;
Uses Crt;
Constfname='spisok.dat';
TypePerson=record
marka:string;
number:string;
familia:string;
end;
Varauto:array[1..5] of person;
i,j,l,q:integer;
h: file ofperson;
s:string;
f:boolean;
begin
Clrscr;
Assign(h,fname);
Reset (h);
i:=0;
While Eof (h)= false do begin
i:=i+1;
Read(h,auto[i]);
end;
Close(h);
writeln('Информация,считанная из файла ',fname);
writeln;
q:=i;
for j:=1 to qdo begin
with auto[j]do begin
gotoxy(1,wherey);
write(marka);
gotoxy(15,wherey);
write(number);
gotoxy(20,wherey);
writeln(familia);
end;
end;
writeln;
write('Введитеинтересующую Вам марку автомобиля: ');
readln(s);
writeln;
l:=0;
for j:=1 to qdo begin
with auto[j]do begin
if marka=sthen begin
l:=l+1;
gotoxy(1,wherey);
write(number);
gotoxy(10,wherey);
writeln(familia);
end;
end;
end;
writeln('Количествоавтомобилей данной марки — ',l);
write('НажмитеEnter');
readln;
end.
Задание 4.На телефонном узле в конце каждого квартала составляется на каждого абонентаведомость оплаты междугородных телефонных разговоров (с 7-ю городами) в течениеквартала (3 месяца)
Написатьпрограмму, которая вводит исходные данные, выполняет расчеты и выводит наэкран:
ü Исходныеданные в виде таблицы, где указаны коды городов, с которыми велись разговоры,общее время разговора с каждым городом за один месяц, стоимость одной минутыразговора (меняется каждый месяц);
ü Общаяпродолжительность разговоров с каждым городом за квартал;
ü Платаза каждый месяц;
ü Общаяплата за 3 месяца;
ü Городс наибольшей платой.
program kursovik;
uses crt;
type
telef=record
kod:integer;
tpm1,tpm2,tpm3,price1,price2,price3:integer;
end;
telef1=record
kod,tpm,ob:integer;
pr1,pr2,pr3:integer;
end;
var
a:file of telef;
res:array[1..7] of telef1;
i,j,s,aa,max:integer;
begin;
textbackground(10);
clrscr;
textcolor(0);
gotoxy(15,2);
writeln('Курсовая работа студента группы 01М22 Белоусовой Е.В.');
gotoxy(27,3);
writeln('Задание на курсовую работу:');
textcolor(4);
writeln;
writeln(' На телефонном узле в конце каждого квартала составляетсяна каждого абонента');
writeln('ведомость оплаты междугородных телефонных разговоров (с7-ю городами) в течение');
writeln('квартала (3 месяца).');
writeln(' Написать программу, которая вводит исходные данные,выполняет расчеты и ');
writeln('выводит на экран:');
writeln(' — исходные данные в виде таблицы, где указаны кодыгородов, с которыми велись');
writeln(' разговоры, общее время разговора с каждым городом заодин месяц, стоимость');
writeln(' одной минуты разговора (меняется каждый месяц);');
writeln(' — общая продолжительность разговоров с каждым городом заквартал;');
writeln('плата за каждый месяц;');
writeln('общая плата за 3 месяца;');
writeln('город с наибльшей платой.');
gotoxy(27,18);
textcolor(0);
writeln('Требование к вводу информации');
textcolor(4);
writeln(' — исходные данные вводятся с клавиатуры.');
textcolor(0);
writeln;
writeln(' Требование к выводу результатов');
textcolor(4);
writeln(' — результат выводятся на экран.');
textcolor(14);
writeln;
writeln(' Для продолжения работы программы нажмите ENTER');
readln;
clrscr;
textcolor(0);
writeln(' Требования к структуре программы ');
textcolor(4);
writeln(' Программа должна состоять из следующих частей:');
writeln(' — вывод заставки с информацией о студенте и задании;');
writeln(' — ввод данных (выполняется в диалоговом режиме);');
writeln(' — вывод исходных данных и результатов (на одинэкран).');
textcolor(0);
writeln(' Требования к размещению исходных данных внутри программы');
textcolor(4);
writeln(' Исходные данные располагаются в файле, компонентамикоторого являются записи.');
writeln('Структура каждой записи и типы ее полей выбираются взависимости от задания.');
textcolor(0);
writeln(' Используемые цвета ');
textcolor(4);
writeln(' — черный(0), красный(4), светло-зеленый(10),желтый(14)');
textcolor(14);
gotoxy(18,24);
writeln('Для продолжения работы программы нажмите ENTER');
readln;
clrscr;
assign(a,'kurs.dat');
rewrite(a);
textcolor(0);
for i:=1 to 7 do
begin
write('Введите код ',i,'-го города: ');
readln(tel.kod);
write('Введите общее время разговора с городом ',tel.kod,' за 1-ймесяц: ');
readln(tel.tpm1);
write('Введите стоимость одной минуты разговора с городом',tel.kod,' в 1-м месяце: ');
readln(tel.price1);
write('Введите общее время разговора с городом ',tel.kod,' за 2-ймесяц: ');
readln(tel.tpm2);
write('Введите стоимость одной минуты разговора с городом',tel.kod,' в 2-м месяце: ');
readln(tel.price2);
write('Введите общее время разговора с городом ',tel.kod,' за 3-ймесяц: ');
readln(tel.tpm3);
write('Введите стоимость одной минуты разговора с городом',tel.kod,' в 3-м месяце: ');
readln(tel.price3);
write(a,tel);
end;
close(a);reset(a);
s:=1;
while not eof(a) do begin
read(a,tel);
res[s].kod:=tel.kod;
res[s].tpm:=tel.tpm1+tel.tpm2+tel.tpm3;
res[s].pr1:=tel.tpm1*tel.price1;
res[s].pr2:=tel.tpm2*tel.price2;
res[s].pr3:=tel.tpm3*tel.price3;
res[s].ob:=res[s].pr1+res[s].pr2+res[s].pr3;
s:=s+1;
end;close(a);
clrscr;
writeln('Код города Общее время разговора за каждый месяц Стоимостьминуты разговора');
reset(a);
while not eof(a) do
begin
read(a,tel);
writeln(' ',tel.tpm1,' ',tel.price1);
writeln(' ',tel.kod,' ',tel.tpm2,' ',tel.price2);
writeln(' ',tel.tpm3,' ',tel.price3);
end;
textcolor(14);
gotoxy(18,24);
writeln('Для продолжения работы программы нажмите ENTER');
readln;
clrscr;
textcolor(0);
writeln('Код города Общее время разговора за квартал Плата замесяц Общая плата');
for i:=1 to 7 do
begin
aa:=res[i].kod;
writeln(' ',res[i].pr1);
writeln(' ',aa,' ',res[i].tpm,' ',res[i].pr2,' ',res[i].ob);
writeln(' ',res[i].pr3);
end;
max:=res[1].ob;
for i:=1 to 6 do begin
if res[i+1].ob>max then
begin
max:=res[i+1].ob;
j:=i+1;
end;
end;
writeln('Город с наибольшей платой: ',res[j].kod);
textcolor(14);
gotoxy(18,24);
writeln('Для завершения работы программы нажмите ENTER');
readln;
end.
Задание 5Упорядочить список студентов по среднему балу и распечатать его
Programspisok_grupp;
Uses Crt;
Const kurs=3;
Const kol=5;
Type
sved=record
famil:string[25];
datar:string[8];
god: integer;
gruppa:integer;
ocenki:array[1..3,1..5]of integer;
srball:array[1..25]of real;
End;
Var
spisok:array[1..25] of sved;
i,i1,j, s,mesto,n,g:integer;
max,t:real;
q:string[25];
Begin
ClrScr;
writeln('Введитеколичество учеников');
readln(n);
for i:=1 to ndo
Withspisok[i] do
Begin
Writeln('Фамилия ',i,' студента');
Readln(famil);
Writeln('Датарождения');
Readln(datar);
Writeln ('Годпоступления');
Readln (god);
Writeln('Группа');
Readln(gruppa);
s:=0;
for i1:=1 tokurs do
begin
writeln('Оценки',i1,' года');
for j:=1 tokol do
Begin
Writeln (j,'Предмет');
Readln(ocenki[i1,j]);
s:=s+ocenki[i1,j];
End;
end;
srball[i]:=s/(kol*kurs);
ClrScr;
End;
writeln('Фамилия':8,'Датарождения':16,'Год поступления':18,'Курс':7,'Группа':8);
for i:=1 to ndo
begin
withspisok[i] do write(famil:8,datar:16,god:18,kurs:7,gruppa:8);
writeln;
writeln;
for g:=1 tokurs do
begin
write(g,'год:');
for j:=1 tokol do
withspisok[i] do write(ocenki[g,j]:4);
writeln;
end;
withspisok[i] do writeln('Средний бал =',srball[i]:6:2);
writeln;
end;
writeln;
writeln('Попорядку');
for j:=1 to ndo
Begin
max:=spisok[j].srball[j];
mesto:=j;
for i:=j to ndo
ifspisok[i].srball[i]
Begin
max:=spisok[i].srball[i];
mesto:=i;
End;
t:=spisok[j].srball[j];
spisok[j].srball[j]:=spisok[mesto].srball[mesto];
spisok[mesto].srball[mesto]:=t;
q:=spisok[j].famil;
spisok[j].famil:=spisok[mesto].famil;
spisok[mesto].famil:=q;
withspisok[j] do writeln(famil:8,srball[j]:6:2);
End;
End.
Задание 6.Запись с вариантами
var R =Record
rem: string;
Case byte of
3:(n:integer);
5:(x,y,z:char);
'a':(i,j:byte);
end;
begin
R.rem:='записьс ваpиантами';
R.n:=25000;
write(R.i,R.x,R.j,R.y);{168и97a}
{ord('и')=168,ord('a')=97, 168+97*256=25000}
end.
Задание 7.Пример объявления типа запись
type Men =Record
FIO,Adress:string;
Year: byte;
End;
var A,B: Men;
begin
A.FIO:='ИвановИ.И.';
A.Adress:='пp.Ленина, д. 40, кв. 10';
A.Year:=1981;
end.
Задание 8. Составитьпрограмму в которой известны Фамилия, адрес и номера Телефонов 15 человек,организовать поиск номера телефона по фамилии абонента
Program as;
Type
person=record
surname:string[40]
adres:string[20]
nomer:integer
var
mas:array[1..15]of person;
i:integer;poisk: string;
procedureInput.date;
var
begin
writeln(‘Введиданные’,I,’ абонента’);
writeln(‘Фамилия’);
readln(mas[i].surname);
writeln(‘адрес’);
readln(mas[i].adres);
writeln(‘Номертелефона’);
readln(mas[i].nomer);
end;
Procedurewrite date;
Begin
With mas[i]do
Begin
Writeln(‘фамилия’,surname);
Writeln(‘адрес’,adres);
Writeln(‘номер’,nomer);
End;
End;
Begin
For i:=1 to15 do Input.date;
Writeln(‘Введифамилию абонента’);
Readln(poisk);
For i:=1 to15 do
If mas[i]nomer=poisk then write date;
End.
Задание 9. Создатьсписок учеников класса и вывести на экран Фамилии и Имена в виде таблицы
Program as;
Uses crt;
Type
Klass=record
Surname:string[15];
Name:string[10];
End;
Var A:array[1..10] of klass;
I:integer;
Begin clrscr;
For i:=1 to10 do begin
Writeln(‘введифамилию’);
Readln(a[i].surname);
Writeln(‘введиимя’);
Readln(a[i].name);
End;
Writeln;
Clrscr;
For i:=1 to10 do writeln(a[i].surname,’ ‘,a[i].name);
End.
Задание10. Известныданные о 6 сотрудниках фирмы Фамилия, возраст, и отношение к воен.службе.Вывести на экран фамилии всех военнообязанных сотрудников
Program as;
Uses crt;
Type
S=record
N:string[10];voz:integer;
V:string[8];
End;
Vara:array[1..6] of s;
I:integer;
Begin clrscr;
For i:=1 to 6do begin
Writeln(‘какаяу тебя фамилия’);
Readln(a[i].s);
Writeln(‘сколькотебе лет’);
Readln(a[i].voz);
Writeln(‘тыотносешся к военной части’);
Readln(a[i].v);
End; Writeln;Clrscr;
For i:=1 to 6do if a[i].v=’DA’ then writeln(a[i].s);
End.
Задание11. Даныназвания 6 городов и стран, среди них есть город находящийся в Италиинапечатать их название
Program as;
Uses crt;
Type
S=record
strana: string[10];
gorod:string[8];
End;
Var a:array[1..6]of s;
I:integer;
Begin clrscr;
For i:=1 to 6do begin
Writeln(‘страна?’);
Readln(a[i].strana);
Writeln(‘город’);
Readln(a[i].gorod);
End; Writeln;Clrscr;
For i:=1 to 6do if a[i]. strana =’italia’ then writeln(a[i].gorod);
End.
Задание12. Даныназвания 10 стран и частей света. Напечатать на экране все страны находящиеся вАзии
Program as;
Uses crt;
Type
S=record
strana:string[10];
ch:string[8];
End;
Vara:array[1..10] of s;
I:integer;
Begin clrscr;
For i:=1 to10 do begin
Writeln(‘страна’);
Readln(a[i].strana);
Writeln(‘частьсвета’);
Readln(a[i].ch);
End; Writeln;Clrscr;
For i:=1 to10 do if a[i]. ch =’Azia’ then writeln(a[i]. strana);
End.
Задание13. Изведомости 3-х студентов с их оценками (порядковый номер, Ф.И.О. и три оценки)определить количество отличников и средний бал каждого студента
Program Spic;
Type wed =record {Тип wed включает 3 поля: n, fio, bal}
n: integer;
fio:string[40];
bal: array[1..3] of integer {Поле bal – массив из 3 оценок }
end;
Var spisok:wed; {Запись spicok типа wed}
i, j, kol, s:integer; sr: real;
Begin
kol:=0; {kol-количество отличников}
With spisokdo {with присоединяет имя записи spisok ко всем }
For i:=1 to 3do { полям внутри цикла For по i }
begin
n:=i;
Write ('Vvedite FIO # ', i,' ');
Readln (fio);
s:=0;
For j:= 1 to3 do
begin
write ('Vvediteocenky: ');
readln (bal[j]);
s:= s+ bal[j];
end;
if s=15 thenkol:=kol+1; {подсчет количества отличников}
sr:= s/3;writeln (fio, ', Sredniy bal = ', sr:4:1); end;
writeln ('Kolichestvo otlichnikov = ', kol);
readln;
end.
Задание14. Пусть нам необходимозаполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), азатем вывести эти сведения на экран
programprimer1;
typeanketa=record
fio:string[45];
dat_r:string[8];
adres:string[50];
curs: 1..5;
grupp:string[3]
end;
var student:anketa;
begin
writeln(‘введите сведения о студенте’);
{обратитевнимание, ввод каждого поля осуществляется отдельно}
writeln(‘введите фамилию, имя и отчество’);
readln(student.fio);
writeln(‘введите дату рождения’);
readln(student.dat_r);
writeln(‘введите адрес’);
readln(student.adres);
writeln(‘введите курс’);
readln(student.curs);
writeln(‘введите группу’);
readln(student.grupp);
writeln(‘ввод закончен’);
writeln;
{обратитевнимание, что вывод записи осуществляется по полям}
writeln(‘фамилия студента: ’, student. fio);
writeln(‘дата рождения: ’, student.dat_r);
writeln(‘адрес: ’, student.adres);
writeln(‘курс: ’, student.curs);
writeln(‘группа: ’, student.grupp);
end.
Задание15. Пусть нам необходимоиметь сведения о многих студентах, например, нашего факультета. Следовательно,необходимо организовать массив записей Паскаля. А затем из общего списка вывестифамилии студентов 2-го курса
programprimer 2;
typeanketa=record
fio:string[45];
dat_r:string[8];
adres:string[50];
curs: 1..5;
grupp:string[3]
end;
var student:array [1..100] of anketa;
I: integer;
begin
{последовательновводим каждую запись}
for I:=1 to100 do
begin
writeln(‘введите сведения о’, I, ‘-м студенте’);
writeln(‘введите фамилию, имя и отчество’);
readln(student[I].fio);
writeln(‘введите дату рождения’);
readln(student[I].dat_r);
writeln(‘введите адрес’);
readln(student[I].adres);
writeln(‘введите курс’);
readln(student[I].curs);
writeln(‘введите группу’);
readln(student[I].grupp);
end;
writeln(‘ввод закончен’);
writeln;
{просматриваеммассив записей и выбираем только студентов 2-го курса }
for I:=1 to100 do
ifstudent[I].curs=2 then
writeln(‘фамилия студента: ’, student[I].fio);
end.
Строки
Задание 1.Дана последовательность слов. Напечатать те слова последовательности, которыеотличны от последнего слова и удовлетворяют свойству: слово симметрично
ProgramStroki;
Uses Crt;
Vars,k:string;
a:array[1..100]of string;
i,n,j,l:Integer;
f:boolean;
begin
ClrScr;
{Вводпоследовательности слов}
Writeln('Введитепоследовательность слов:');
Readln(s);
{Запись словв массив a}
for i:=1 tolength(s) do begin
if(s[i-1]' ') and (s[i]=' ') and (length(k)0) then begin
inc(n);
a[n]:=k;
k:='';
end;
ifs[i]' ' then k:=k+s[i];
if(i=length(s)) and (length(k)0) then begin
inc(n);
a[n]:=k;
k:='';
end;
end;
{Проверка насимметричность слов, содержащихся в массиве а}
l:=0;
for i:=1 ton-1 do begin
f:=false;
ifa[i]a[n] then
iflength(a[i]) mod 2 = 0 then begin
for j:=1 tolength(a[i]) div 2 do
ifa[i][j]a[i][length(a[i])+1-j] then f:=true;
if f=Falsethen begin
l:=l+1;
if l=1 then Write('Симметричныеслова: ');
Write(a[i],'');
end;
end;
end;
Writeln;
if l=0 thenWriteln('Симметричные слова отсутствуют');
Write('НажмитеEnter');
Readln;
end.
Задание 2.Дана строка символов. Преобразовать эту строку удалив из нее каждые">>" и повторив (вставив еще раз) каждую пару символов"
ProgramStroki;
Uses Crt;
Var s:string;
i:integer;
begin
ClrScr;
Write('Введитестроку символов: ');
Readln(s);
for i:=1 tolength(s) do begin
if(s[i-1]='>') and (s[i]='>') then delete(s,i-1,2);
if(s[i-1]='
insert('
i:=i+2;
end;
end;
Writeln('Преобразованнаястрока: ',s);
Write('НажмитеEnter');
Readln;
end.
Задание 3. Составитьпрограмму, которая запрашивает имя человека и повторяет его на экране сПриветствием
Program as;
Uses crt;
Var K:string;
Begin clrscr;
Writeln(‘Каквас зовут’);
Readln(k);
Writeln(‘Привет,’‘,k’!’);
End.
Задание 4. Составитьпрограмму, которая запрашивает название футбольной команды и повторить его наэкране со словом «Это чемпион!»
Program as;
Uses crt;
Var k:string;
Begin clrscr;
Writeln(‘Введитеназвание футб. команды’);
Readln(k);
Writeln(k,’’,’Чемпион!’);
End.
Задание 5.Дана строка символов s1,s2,...sn, в которой встречаются цифры, пробелы, буква Еи знаки + и -. Известно, что первый символ строки является цифрой. Из даннойстроки выделить подстроку предшествующую первому пробелу. Требуется: определитьявляется ли это подстрока числом, если да, то выяснить целым или вещественным,положительным или отрецательным
ProgramStroki;
Uses Crt;
Vars1,s2:string;
i:Integer;
k:Real;
f:boolean;
begin
ClrScr;
Writeln('Введитестроку символов:');
Readln(s1);
s2:='';
f:=true;
for i:=1 tolength(s1) do begin
if s1[i]=' 'then f:=false;
if(s1[i]' ') and (f=true) then s2:=s2+s1[i];
end;
Writeln('Выделеннаяподстрока: ',s2);
Val(s2,k,i);
if i0then Writeln('Выделенная подстрока не содержит числовое значение')
else begin
f:=false;
for i:=1 tolength(s2) do
if s2[i]='E'then begin
Write('Числов подстроке вещественного типа, ');
f:=true;
end;
if f=falsethen Write('Число в подстроке целочисленного типа, ');
if k
elseWriteln('положительное')
end;
Write('Длявыхода нажмите Enter');
Readln;
end.
Задание 6. Даноназвание футбольного клуба, определить кол-во символов в нем
Program as;
Uses crt;
Var k:string;M:integer;
Begin clrscr;
Writeln(‘Введитеназвание Ф.К’);
Readln(k);
M:=length(k);
Writeln(M);
End.
Задание 7. Даноназвание города, определить четно или нет, кол-во символов в нем
Program as;
Uses crt;
Vark:string;b:integer;
Begin clrscr;
A:=’Aktobe’;
B:=length(a);
If b mod 2=0then write(‘четно ‘) else write(‘нечетно ‘);
Readln;
End.
Задание 8.Дана строка, содержащая текст. Записать её в обратном порядке
program з8;
var s1,s2: String;
i: Integer;
begin
Write('Введите строку=');
ReadLn(s1); s2:='';
for i:=Length(s1) downto 1 do s2:=s2+s1[i]; WriteLn('Обратнаястрока=',s2);
ReadLn; end.
Задание 9. Данослово. Заменить «о» на «е»
Program as;
Uses crt;
Var a:string;e,I,b:integer;
Begin clrscr;
Writeln(‘Danoclovo’);
Readln(a);
B:=length(a);
For i:=1 to bdo if copy(a,I,1)=’o’ then begin
Delete(a,I,1);
Insert(‘e’,a,i);
End;
Writeln(a);
End.
Задание10. Даны2 фамилии опред какая из них длиннее
Program as;
Uses crt;
Vara,b:string; c,d:integer;
Begin clrscr;
A:=’kolin’;
B:=’imanalin’;
C:=length(a);
D:=:=length(b);
If c>dthen write(a) else write(b);
End.
Графикав Турбо-Паскале
Задание 1.При нажатии на Enter плавно перемещает треугольник c вершинами(10,10);(10,100);(100,100) на 10 пунктов по X, и по Y
usescrt,graph;
const n=4;
type
Point=record
x,y:integer;
end;
mas=array[1..n]of Point;
procedureZ(x,y:integer;var m:mas;c:byte);
var i:byte;
begin
Setcolor(c);
m[1].x:=x;m[1].y:=y;
m[2].x:=x;m[2].y:=y+90;
m[3].x:=x+90;m[3].y:=y+90;
m[4].x:=x;m[4].y:=y;
moveto(m[1].x,m[1].y);
for i:=1 to ndo
lineto(m[i].x,m[i].y);
Setfillstyle(1,c);
end;
vargd,gm:integer;
x,y,x1,y1,i:integer;
p:mas;
c1,c2:byte;
k:char;
move:boolean;
begin
gd:=VGA;
gm:=VGAHi;
Initgraph(gd,gm,'..\bgi');
Setbkcolor(8);
x:=10;y:=10;
c1:=7;c2:=8;
move:=true;
repeat
if keypressedthen
begin
k:=readkey;
if k=#13 then{if enter}
for i:=1 to10 do
begin
y1:=y;
x1:=x;
y:=y+1;
x:=x+1;
delay(6000);
Z(x1,y1,p,c2);
Z(x,y,p,c1);
move:=true;
end;
end;
if move then
begin
Z(x1,y1,p,c2);
Z(x,y,p,c1);
move:=false;
end;
OutTextXY(320,240,'PressEnter to continue');
until k=#27;{until escape}
closegraph;
end.
Задание 2.Изобразить на экране скачущий мяч. Использовать графический режим
usescrt,graph;
constr=20;h=5;
vargd,gm,i,n,t,x,y,p:integer;
begin
clrscr;
gd:=Detect;
initgraph(gd,gm,'c:\bp\bgi');
setcolor(4);
setlinestyle(0,1,1);
line(0,479,639,479);
x:=r;y:=r;
t:=479-2*r;
n:=t div h;
p:=h;
whilen0 do begin
for i:=1 to ndo begin
setcolor(2);
circle(x,y,r);
setfillstyle(1,2);
floodfill(x,y,2);
delay(10);
setcolor(0);
circle(x,y,r);
setfillstyle(1,0);
floodfill(x,y,0);
y:=y+p;
x:=x+1;
end;
if p>0then begin t:=round(3*t/4);n:=t div h end;
p:=-p end;
setcolor(12);
circle(x,y,r);
setfillstyle(1,2);repeat until keypressed;closegraph
floodfill(x,y,12);end.
Задание 3.Анимационная картинка — кораблик совершает путь по заданной траектории… всепроисходит довольно быстро
programcorablik;
uses Graph,Crt;
var
grDriver:integer;
grMode:integer;
ErrCode:integer;
x,y,y0,a,b:integer;{a,b-переменные для линии моря, чтоб они не зависели от х, у}
proceduremore(a,b:integer);
begin
moveto(0,y0);
setcolor(blue);
for a:=0 to680 do{слева направо рисуем синусоиду синего чвета}
begin
b:=y0-round(sin(a*pi/180)*30);{30-коэффициентмасштабирования по оси Х,
чем больше,тем волна круче}
lineto(a,b);
end;
end;
begin
grDriver:=Detect;
InitGraph(grDriver,grMode, '..\BGI');
ErrCode:=GraphResult;
y0:= 250;
if ErrCode =grOk then
begin
x:=600;
while x>=0do{лучше использовать цикл while, можно менять величину шага,
что тожевлияет на скорость и частоту смены картинки}
begin
cleardevice;
more(a,b);{рисуемволну}
setcolor(white);{устанавливаемцвет кораблика}
y:=y0-40-round(sin(x*pi/180)*30);{движемсяпо волне}
MoveTo(x — 40, y + 20);
LineTo(x — 20, y + 40);
LineTo(x +20, y + 40);
LineTo(x +40, y + 20);
LineTo(x — 40, y + 20);
MoveTo(x +15, y + 20);
LineTo(x +15, y — 40);
LineTo(x — 20, y + 20);
LineTo(x +15, y + 20);
delay(100);{нормальная скорость, если модули *.TPL не глючные как у Вас,
время должнобыть в миллисекундах, а не в каких-нибудь наносекундах}
x:=x-2;{шагдвижения}
end;
end
elseWriteln('Graphics error: ', GraphErrorMsg(ErrCode));
Settextstyle(0,0,3);{устанавливаемстиль шрифта}
cleardevice;
setcolor(red);
OuttextXY(200,240,'Rejszavershen!');{выводим надпись}
readln;
CloseGraph;
end.
Задание 4.Анимация — прямоугольничек красного цвета совершает полный путь по экранумонитора!
program kv;
uses
crt, graph;
var
x, y, dx, dy,w, h, driver, mode: integer;
begin
initgraph(driver,mode, 'G:/BP/BGI');
ifgraphresult0 then begin
writeln('none');
halt
end;
dx:=1;
dy:=0;
w:=100;
h:=10;
repeat
setfillstyle(1,black);
bar(x, y,x+w, y+h);
x:=x+dx;
y:=y+dy;
setfillstyle(1,red);
bar(x, y,x+w, y+h);
delay(100);
if(x+w>=getmaxx)and(y
begin
dx:=0;
dy:=1;
end
else
if(y+h>=getmaxy)and(x+w>=getmaxx) then
begin
dx:=-1;
dy:=0;
end
else
if(x=getmaxy) then
begin
dx:=0;
dy:=-1;
end
else
if(y
begin
dx:=1;
dy:=0;
end;
untilkeypressed;
closegraph;
end.
Задание 5.Люди часто просят нарисовать самый обычный рисунок из разных тем… напримернарисую«программиста»
Programbugalteria;
Usescrt,graph;
Vargd,gm:integer;
begin
clrscr;
Detectgraph(gd,gm);
Initgraph(gd,gm,'C:\tp7');
{Зарисовкастола}
Bar(120,330,360,360);
Bar(180,360,330,480);
{Зарисовкакомпьютера}
Line(180,240,180,330);
Line(180,270,210,330);
Line(172,210,202,300);
Line(180,210,210,300);
Line(210,300,202,300);
Line(180,210,172,210);
Line(270,322,270,330);
Line(270,322,330,330);
{Зарисовкастула}
Bar(420,405,510,420);
Bar(456,420,480,480);
{Зарисовкабухгалтера работающего за компьютером}
Line(510,405,540,300);
Line(334,480,390,390);
Line(390,390,510,390);
Line(360,480,420,405);
Line(510,390,450,240);
Line(480,390,420,300);
Line(420,300,430,240);
Line(450,270,330,300);
Line(330,300,310,310);
Circle(435,195,40);
Readln
end.
Задание 6.Построить один прямоугольник и заполнить его случайно расположенными точками (впределах 100 штук) и второй прямоугольник в котором проведены случайные линии(различными цветами)
programпример;
uses graph,crt;
vargd,gm,xl,yl,x2,y2,x,y,x3,y3,i,errcode: integer;
begin
gd:=0; gm:=0;
InitGraph(gd,gm,’‘);
[построениепервого прямоугольника]
x1:=10;y1:=10; x2:=200; y2:=200;
rectangle(x1,y1,x2,y2);
[выводслучайных точек]
for i:=1 to100 do
begin
x:=random(x2-xl)+x1;
у:=random(y2-yl)+y1;
putpixel(x,y,2)
end;
[построениевторого прямоугольника]
xl:=210;yl:=210; x2:=400; y2:=400;
rectangle(xl,yl,x2,y2);
[выводслучайных линий]
for i:=l to100 do
begin
setcolor(random(15));
x:=random(x2-xl)+xl;
y:=random(y2-yl)+yl;
x3:=random(x2-xl)+xl;
y3:=random(y2-yl)+yl;
Iine(x,y,x3,y3);
end;
while notkeypressed do;
closegraph
end.
Задание 7. Изобразитьлинии разного стиля и толщины
programпример;
[ вывод линийразного вида]
usesgraph,crt;
var gd,gm: integer;
begin
gd:=0; gm:=0;initgraph (gd, gm, ' ');
line (0, 0,300, 0); [линия обычного образца]
setlinestyle(l,0,l);line(0,20,300,20);[линияиз точек]
setlinestyle(2,0,l);line(0,40,300,40);[пунктирнаялиния]
setlinestyle(3,0,1);line(0,60,300,60);[штриховая линия]
setlinestyle(0,0,3);line(0,80,300,80);[сплошнаятолстая линия]
while notkeypressed do;
closegraphend.
Задание 8. Построитьокружность и описать вокруг нее квадрат
program пример;
[квадрат ивписанная окружность]
uses graph,crt;
vargd,gm,x,y,r,x1,y1,x2,y2: integer; xa,ya:word;
begin
writeIn(‘введи координатыцентра окружности и радиус’);
readln(x,y,r);
gd:=0; gm:=0;initgraph(gd,gm, ‘ ‘);
circle(x, у,г);
getaspectratio(xa,ya);
x1:= x-r; у1:=round (y -r*(xa/ya));
x2:=x+r; y2:=round (y+r*(xa/ya));
rectangle(xl,yl,x2,y2);
while notkeypressed do;
closegraphend.
Задание 9. Построитьдугу от 0 до 90 градусов и от 270 до 450 градусов
programпример;
[дугиокружности от 0 до 90 и от 270 до 450]
usesgraph,crt;
vargd,gm,x,y,r,xl,yl: integer; xа, уа:word;
begin
gd:=0; gm:=0;initgraph(gd,gm,’ ‘);
getaspectratio(xa,ya);
{строим осикоординат}
line(0,100,300,100);line(150,0,150,200);
{ строим дугуот 0 до 90 }
агс(150,100,0,90,40);,
line (310,100,610,100); line(460,0,460,200);
{ строим дугуот 270 до 450 }
arc(460,100,270,540,40);
while notkeypressed do; end.
Задание10. Построитьдуги элипсов
program пример;
[дугиэллипсов приразном соотношении Rxи Ry]
usesgraph,crt;
var gd,gm:integer;xa,ya:word;
begin
gd:=0; gm:=4;initgraph (gd, gm, ‘ ‘);
getaspectratio(xa,ya);
{ перваядуга}
line(0,100,l60,100);
line(80, 55,80,145);
ellipse(80,100,180,90,40,40);
{ втораядуга}
line(190,100,410,100);
line(300,55,300,145);
ellipse(300,100, 0, 359,100,20);
{ третья дуга}
line(440,100,600,100);
line(520,55,520,145);
ellipse (520,100, 0,270,40, round (40* (xa/ya)));
while notkeypressed do; end.
Задание11. Построитьпрямоугольники в два ряда по четыре прямоугольника в ряд и заполнить ихсоответственно 12-ю различными типами штриховки
programпример;
{демонстрацияцветов заполнения}
usesgraph,crt;
vargd,gm,x,y,k, j:integer;
begin
gd:=0; gm:=0;initgraph (gd, gm, ' ');
x:=60; y:=40;
for j:=0 to 2do
for k:=0 to 3do
begin
rectangle ((k+ 1) *x,(j+1)*y, (k+2)*x, (j+2)*y);
setfillstyle{k+j*4,j+1);
bar((k+1)*x+1,(j+1)*y+1, (k+2)*x-1, (j+2)*y-1)
end;
while notkeypressed do;
end.
Задание12. Построитьокружность и описать вокруг нее квадрат, а затем область внутри квадрата, но внеокружности закрасить цветом фона
programпример;
{ квадрат ивписанная окружность}
usesgraph,crt;
var gd, gm,x, y, r,xl,yl,x2,y2: integer; xa,ya:word;
begin
writeln('введикоординаты центра окружности и радиус’);
readln(х, у, г);
gd:=0; gm:=0;initgraph (gd, gm, ‘ ‘);
setcolor(3); circle(x,y, r);
getaspectratio(xa,ya);
x1:=x-r; yl:=round(у-r*(xa/ya));
x2:=x+r; y2:=round(y+r*(xa/ya));
rectangle(x1,y1,x2,y2);
floodfill(x1+1,y1+1,3);
floodfill(x2-1,y1+1,3);
floodfill(x1+1,y2-1,3);
floodfill(x2-1,y2-1,3);
while notkeypressed do;
closegraph
end.
Задание13. Вывеститочечным шрифтом горизонтально, начиная с точки (100,20), сообщение«horisontal (горизонтально)» и прямым шрифтом вывести вертикальносообщение «vertical (вертикально)», начиная с точки (5,10)
programпример;
{ графика итекст}
usesgraph,crt;
var gd,gm: integer;
begin
gd:=0; gm:=0;initgraph(gd,gm, ‘ ‘);
outtextxy(100,20,‘horisontal (горизонтально)’);
settextstyle(0,1,1);
outtextxy(50,10, ‘vertical (вертикально)’);
while notkeypressed do;
end;
Задание14. Изобразитьтреугольник, вращающийся вокруг одной из вершин
programпример;
{ вращение треугольникавокруг одной вершины}
usesgraph,crt;
var
gd,gm,I,xc,yc,x1,y1,x2,y2,x1n,x2n,y1n,y2n:integer;
xa,ya:word; t:real;
begin
gd:=9; gm:=2;initgraph (gd, gm, ‘ ‘);
getaspectratio(xa,ya);
xc:=300; yc:=100;t:=0; x1:=400; y1:=10; x2:=500;
y2:=100;
for i:=0 to 360do
begin
t:=t+pi/180;
xln:=round(xc+ (xl-xc) *cos (t)+(yl-yc)*sin(t) *ya/xa);
у1n:=round(yc+ (yl-yc) *cos (t) — (xl-xc)*sin(t) *xa/ya);
x2n:=round(xc+(x2-xc) *cos(t)+(y2-yc)*sin(t) *ya/xa);
y2n: =round(yc+ (y2-yc) *cos (t) + (x2-xc)*sin(t) *xa/ya);
setcolor (15);
line (xc,yc,xln, yln); line (xln,yln,x2n,y2n);
line(x2n,y2n,xc,yc); delay(20);
setcolor(0);
line(xc,yc,xln,yln);line (xln,yln,x2n,y2n);
Iine(x2n,y2n,xc,yc);delay(20);
end; whilenot keypressed do;
closegraph
end.
Задание15. Изобразитьдвижение шара(точнее круга)по горизонтали
programпример;
{ движениешара по горизонтали}
usesqraph,crt;
var gd,gm,i: integer;p:pointer; s:word;
begin;
gd:=0; gm:=0;initgraph (gd, gm, ‘ ‘);
{ рисуем шар}
for i:=l to 10do circle (20, 30, i);
{ выделяемпамять}
s:=imagesize(9,20,30, 40); getmem(p,s);
{ запоминаемрисунок}
getimage(9,20, 30, 40,p^); cleardevice;
{ изображаемполет шара }
for i:=l to 600do
beginputimage(10+i, 100,p^,0); delay(10); end;
while not keypressed do;
end.