Содержание
Интерфейс программы Ошибка! Закладка не определена.
Функциональные клавиши Ошибка! Закладка не определена.
Структура программы на языке Turbo Pascal 2
Лабораторная работа № 1. Создание линейного алгоритма 3
Лабораторная работа № 2. Решение задач с линейным алгоритмом 5
Лабораторная работа № 3. Обработка строковых и символьных переменных 6
Лабораторная работа № 4. Обработка целочисленных данных 8
Лабораторная работа № 5. Создание разветвляющего алгоритма 8
Лабораторная работа № 6. Решение задач с разветвляющимся алгоритмом Ошибка! Закладка не определена.
Лабораторная работа № 7. Использование оператора выбора CASE. 10
Лабораторная работа № 8. Генератор случайных чисел 11
Лабораторная работа № 9. Использование цикла с параметром 12
Лабораторная работа № 10. Использование цикла с предусловием 13
Лабораторная работа № 10. Использование цикла с предусловием 14
Лабораторная работа № 11. Решение задач с использованием циклического алгоритма 17
Лабораторная работа № 12. Использование цвета 18
Лабораторная работа № 13. Создание меню 19
Лабораторная работа № 14. Обработка одномерного массива 20
Лабораторная работа № 15. Решение задач на использование одномерных массивов 22
Лабораторная работа № 16. Обработка двумерного массива 22
Лабораторная работа № 17. Решение задач с использованием двумерных массивов 26
Лабораторная работа № 18. Использование процедур 27
Лабораторная работа № 19. Использование функций 29
Лабораторная работа № 20. Графические возможности Turbo Pascal 30
Лабораторная работа № 21. Работа с файлами 37
Лабораторная работа № 22. Задания для самостоятельной работы 40
Структура программы на языке Turbo Pascal
Основные характеристики программы: точность полученного результата, время выполнения и объем требуемой памяти. В большинстве случаев определяющим требованием является точность, но ограничения по объему памяти и времени выполнения носят менее жесткий характер.
Программа на языке Turbo Pascal состоит из следующих разделов:
Заголовок программы;
Раздел uses (подключение библиотечных модулей);
Раздел объявления меток;
Раздел объявления констант;
Раздел объявления типов;
Раздел объявления переменных;
Раздел объявления процедур и функций;
Раздел операторов.
Любой раздел, кроме раздела операторов, может отсутствовать. Разделы описаний (кроме uses, который всегда располагается заголовка программы) могут встречаться в программе любое количество раз и следовать в произвольном порядке. Главное, чтобы все описания объектов были сделаны до того, как объекты будут использованы.
Структура программы в общем виде выглядит следующим образом:
Program … ; {название программы}
Label ;{ объявления меток }
Const ;{ объявления констант }
Type ;{ объявления типов }
Var ;{ объявления переменных }
{объявления процедур и функций, function, procedure}
Begin
Оператор1;
Оператор2; { операторы основной программы }
операторN;
End.
Программа представляет собой последовательность операторов, записанных друг за другом. Каждый следующий оператор начинается с новой строки. Каждая строка завершается «;» и нажатием Enter.
Лабораторная работа № 1. Создание линейного алгоритма
Решить задачу: Вычислить сумму 2 действительных чисел, вводимых с клавиатуры.
Блок-схема

Правила набора листинга программы:
При наборе программы важно соблюдать все знаки препинания
Регистр символов не имеет значения, но чаще всего первый символ строки набирают в верхнем регистре
Символы { и }, (* и *) используются для записи комментариев, пояснений, которые не выполняются и никак не влияют на результат программы. Поэтому эти элементы можно не набирать!!!
Листинг программы.
PROGRAM SUMMA; {название программы}
VAR X,Y,S: REAL; {описание переменных и типов данных}
BEGIN {начало вычислений}
WRITELN(‘ВВЕДИТЕ ПЕРВОЕ ЧИСЛО’); {вывод сообщения}
READLN(X); {ввод первого числа}
WRITELN(‘ВВЕДИТЕ ВТОРОЕ ЧИСЛО’); {вывод сообщения}
READLN(Y); {ввод первого числа}
S:=X+Y; {формула для вычисления}
WRITELN(‘S = ’, S:6:2); {вывод результата на экран}
READLN; {задержка экрана для просмотра результата}
END. {конец программы}
Задания для самостоятельной работы (РЕЗУЛЬТАТЫ ЗАПИСАТЬ В ТЕТРАДЬ):
Изменение формата вывода результата.
Запустите программу, введите данные: первое число = 5,25; второе число = 9,65
Запомните результат.
Измените строку в программе:
WRITELN(‘S = ’, S:6:2); на WRITELN(‘S = ’, S:5:0);
Откомпилируйте и запустите программу, введите те же данные, что и в шаге 1.
Сравните результат.
ЧТО ИЗМЕНИЛОСЬ???
Изменение вывод сообщения.
Измените строку в программе:
WRITELN(‘ВВЕДИТЕ ПЕРВОЕ ЧИСЛО’) на WRITE (‘ВВЕДИТЕ ПЕРВОЕ ЧИСЛО’);
Откомпилируйте и запустите программу.
ЧТО ИЗМЕНИЛОСЬ ПРИ ВЫПОЛНЕНИИ ПРОГРАММЫ???
Изменение формулы.
Измените программу, чтобы она вычисляла периметр прямоугольника со сторонами X и Y. Запишите новый листинг программы в тетрадь.
Лабораторная работа № 2. Решение задач с линейным алгоритмом
Встроенные функции и процедуры Turbo Pascal
Действие или константа | Обозначение в программе |
π | pi |
e (экспонента) | exp |
x2 | sqr(x) |
 | sqrt(x) |
 | exp(x) |
 | exp(y*ln(x)) |
|x| | abs(x) |
sin x | sin(x) |
cos x | cos(x) |
Задачи для самостоятельной работы:
Вывести на экран сообщение «Hello world»
Написать программу, которая выводит четверостишие:
Унылая пора! Очей очарованье!
Приятна мне твоя прощальная краса –
Люблю я пышное природы увяданье,
В багрец и золото одетые леса.
Вывести на экран три введенных с клавиатуры числа в порядке их ввода.
Вывести на экран три введенных с клавиатуры числа в порядке, обратном их воду.
Вывести на экран квадрат введенного числа.
Написать программу вычисления стоимости яблок. Пользователь вводит стоимость 1 кг яблок и вес купленных яблок. Программа считает стоимость покупки.
Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей.
Вычислить значение выражения:
a = (b + c)*d - k | d=b8 |
y = (3x3 + 18x2) | c= |
Лабораторная работа № 3. Обработка строковых и символьных переменных
Встроенные функции и процедуры Turbo Pascal
Операции со строками | Пояснение |
Сopy(x,c,n) | Копирование символов, x- откуда, c – с какого, n – сколько подряд |
Length(x) | Определение длины строки x |
Concat(s1,s2,s3,…sn) | Соединение строк s1,s2,s3,…sn |
Delete(s,n,c) | Копирование символов, s- откуда, c – с какого, n – сколько подряд |
Insert(s,v,n) | Вставка символов: s – куда, v – что, n – с какого символа |
Pos(p,s) | Определение позиции символа: p – где определить, s – какой символ |
Например:
Вычисление | Результат |
x:=’Привет’; y:=length(x) | y:=6 |
s:=’сороконожка’ ; y:=copy(s,7,3) | y:=’нож’ |
Задачи для самостоятельной работы:
Используя исходные слова и различные операции со строками, получить новые слова и словосочетания и вывести на экран результат (необязательно использовать все исходные слова, дополнительно используйте букву «ы»).
Исходные слова | Новые слова и словосочетания |
ЭЛЕКТРОНИКА МИКРОСХЕМОТЕХНИКА МИКРОПРОЦЕССОР УСТРОЙСТВО СИГНАЛ ЛОЖЬ | ТЕХНИКА СХЕМА МИКРОПРОЦЕССОРА ПРОЦЕССОР ЭЛЕКТРОН УСИЛЕНИЕ СИГНАЛА ОПЕРАЦИОННЫЙ УСИЛИТЕЛЬ |
Используя исходные слова и различные операции со строками, получить новые слова и словосочетания и вывести на экран результат (необязательно использовать все исходные слова, дополнительно никакие буквы использовать нельзя).
Исходные слова | Новые слова и словосочетания |
СИСТЕМА КООРДИНАТА ГРАФИК ФУНКЦИЯ ЗАДАЧА РЕШЕНИЕ | ГРАФИК ФУНКЦИИ ОРДИНАТА РЕШЕНИЕ ЗАДАЧИ МАТЕМАТИК ТОЧКА СИСТЕМА КООРДИНАТ |
Написать программу, которая запрашивает имя пользователя и приветствует его. Также выводится сообщение, о том, сколько букв в имени пользователя и на каком месте стоит буква «а» (если таковой нет, об этом тоже выводится сообщение).
Написать программу, которая знакомится с пользователем и приветствует его.
Лабораторная работа № 5. Создание разветвляющего алгоритма
Решить задачу: Найти максимальное из двух действительных чисел, вводимых с клавиатуры.
 | Листинг программы: PROGRAM MAX; VAR X,Y:REAL; BEGIN WRITELN(‘ВВЕДИТЕ X’); READLN(X); WRITELN(‘ВВЕДИТЕ Y’); READLN(Y); IF XY THEN WRITELN(‘X - MAX’) ELSE WRITELN(‘Y-MAX’); END. |
Измените вывод результата, чтобы выводилось не только сообщение о максимальности числа, но и его значение.
Измените программу, чтобы учитывалось равенство чисел и выводилось соответствующее сообщение.
Задачи для самостоятельной работы:
Написать программу, которая загадывает загадку и предлагает варианты ответа. Например: Зимой и летом одним цветом. Что это?
а) елка
б) ежик
в) доллар
Дано число x. Определить, является ли оно отрицательным и четным.
Написать программу, решающую следующую задачу: дано целое число. Определить попадает ли в диапазон от 10 до 100. Выдать соответствующее сообщение.
Написать программу, вычисления стоимости покупки с учетом скидки . Пользователь вводит сумму покупки. Если сумма больше 1000 то покупателю предоставляется скидка 10%.
Написать программу, которая определяет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендации о необходимости поправиться или похудеть. (Оптимальный вес вычисляется по формуле: Рост (в см) - 100)
Дано 3 числа. Определить, какое из них минимальное.
Пользователь вводит номер месяца (1-12) программа сообщает, какой это сезон года.
Лабораторная работа № 4. Обработка целочисленных данных
Для работы с целочисленными типами данных используются дополнительно 2 оператора:
Целочисленное деление | Пояснение |
div | Определение целой части |
mod | Определение дробной части |
Примеры:
A:=123;
B:=10;
C:= A mod B; {С будет равно 3}
D:= B mod 2; {D будет равно 0}
F:= B div 2; {D будет равно 5}
E:= (A div B) mod 10; { E будет равно 2}
Задача. Дано целое трехразрядное число. Определить, количество сотен, десяток и единиц.
Листинг программы
PROGRAM CHISLO;
VAR X:INTEGER;
ED,DES,SOT:INTEGER;
BEGIN
WRITELN(‘Введите трехзначное число’);
READLN(X);
ED:=X MOD 10; {определение единиц}
DES:=(X DIV 10) MOD 10; {определение десятков}
SOT:=X DIV 100; {определение сотен}
WRITELN('SOT = ', SOT);
WRITELN('DES = ', DES);
WRITELN('ED = ', ED);
END.
Задачи для самостоятельной работы:
Дано положительное 5-тизначное целое число. Определить сумму и произведение цифр, входящих в состав числа.
Определить, является ли число, введенное с клавиатуры четным.
Даны два целых числа a и b. Напечатайте остаток от деления a на b или фразу "делится нацело", если a делится на b.
С клавиатуры вводятся два двузначных числа. Нужно вывести число с максимальной суммой цифр.
Дано целое двузначное число. Написать возле каждой цифры двузначного числа – четное, нечетное.
Имеется проездной билет с 6-тизначным номером. Определить, является этот билет счастливым или нет.
Лабораторная работа № 7. Использование оператора выбора CASE.
PROGRAM MY; VAR X: INTEGER; BEGIN WRITELN(‘ВВЕДИТЕ ЦЕЛОЕ ЧИСЛО’); READLN(X); CASE X OF 0: WRITELN(‘НОЛЬ’); 1: WRITELN(‘ОДИН’); 2: WRITELN(‘ДВА’); 3: WRITELN(‘ТРИ’); 4: WRITELN(‘ЧЕТЫРЕ’); 5: WRITELN(‘ПЯТЬ’); 6: WRITELN(‘ШЕСТЬ’); 7: WRITELN(‘СЕМЬ’); 8: WRITELN(‘ВОСЕМЬ’); 9: WRITELN(‘ДЕВЯТЬ’); 10: WRITELN(‘ДЕСЯТЬ’); ELSE WRITELN(‘НЕВЕРНЫЕ ДАННЫЕ); END; END. |
конец начало Х=4 Х=3 Х=2 Х=1 ![]() |
Задачи для самостоятельной работы:
Вывести значение дня недели по его номеру (1-Понедельник, 2 – Вторник)
Написать программу-календарь, которая запрашивает номер месяца и выводит соответствующее название времени года.
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: «Рабочий день», «Суббота» или «Воскресенье».
Написать программу, которая в зависимости от введенного числа выводит 1,3,5,7,9 – нечетное, 2,4,6,8- четное.
Написать программу, которая имитирует работу калькулятора, который выполняет простые действия (+, -, /, *).
Лабораторная работа № 8. Генератор случайных чисел
Для работы со случайными числами подключается генератор с помощью процедуры RANDOMIZE (указывается один раз, после первого оператора BEGIN)
Для дальнейшего использования применятся функция RANDOM. Формат записи:
:= RANDOM | Действительные числа из диапазона от 0 до 1 |
:= RANDOM (N) | Целые числа из диапазона от 0 до N-1 |
:= RANDOM (M-N+1)+N | Целые числа от +N до +M |
|
Пример: |
A := random (11)-5 | Переменная a принимает случайное целое значение из диапазона от -5 до 5 |
B := random (20) | Переменная b принимает случайное целое значение из диапазона от 0 до 19 |
C:=random(15)+10 | Перемення c принимает значения от 10 до 24 |
Задача. Проверить на знание пользователя таблицы умножения, для проверки вывести пример умножения 2 случайных целых цифр (от 1 до 9).
VAR X, Y, OTVET: INTEGER;
BEGIN
RANDOMIZE;
X:=RANDOM(9)+1;
Y:=RANDOM(9)+1;
WRITELN(‘Сколько будет ’, X,’ *’, Y, ‘ ?’);
READLN(OTVET);
IF OTVET=X*Y THEN WRITELN(‘Правильно’) ELSE WRITELN(‘Неверно’);
END.
Задачи для самостоятельной работы:
Сгенерировать случайное число в диапазоне от -15 до +15. Вывести его на экран. Определить, является ли оно: четным? Положительным? Состоящим из двух разрядов?
Вычислить среднее арифметическое 5 целых случайных чисел, которые выбираются из диапазона от -15 до +20.
Сгенерировать случайное число в диапазоне от a до b и вывести его на экран. Границы диапазона вводятся пользователем, причем ab.
Написать программу, которая проверяет знание таблицы умножения. 5 примеров.
Лабораторная работа № 9. Использование цикла FOR (с параметром)
Решить задачу: Вычислить сумму первых 10-ти натуральных чисел
Блок-схема  | Листинг программы PROGRAM SUMMA; VAR S,I:INTEGER; BEGIN S:=0; I:=0; FOR I:=1 TO 10 DO {цикл с параметром, перебирает все значения I от 1 до 10 с шагом 1} S:=S+I; {циклическая часть, повторяется столько раз, сколько значений I перебирается} WRITELN(‘S=’,S:5); END. |
Примечание. Если в циклической части выполняется более 1 оператора, то ее надо поместить в операторные скобки BEGIN и END
Задание для самостоятельной работы:
Измените программу, чтобы вычислялась сумма целых чисел от 20 до 50 (с шагом 1). (Сверьте ответ - 1085)
Измените программу, чтобы вычислялась сумма целых нечетных чисел от 30 до 60.
(Сверьте ответ - 675)
Задачи на использование цикла с параметром
Написать программу, которая вычисляет сумму 5 чисел, введенных с клавиатуры
Написать программу, которая выводить квадраты четных 10 натуральных чисел
Лабораторная работа № 10. Использование цикла WHILE с предусловием
Задача : Вычислить значения функции
и составить таблицу значений для х от -1 до 8 с шагом 1.5.
Листинг программы: PROGRAM CYCL_WHILE; VAR X,Y:REAL; BEGIN WRITELN(' X | Y '); X:=-1; {начальное значение х} WHILE X9.5 DO {проверка условия} BEGIN Y:=2*SQR(X)+5*X-2; {вычисление значения функции} WRITELN(X:6:2,' | ',Y:6:2);{вывод результатов} X:=X+1.5; {изменение шага} END; END. | Результат:  |
Задание для самостоятельной работы:
Составить блок-схему по данной задаче.
Изменить программу: шаг изменения аргумента х = 2.
Протабулировать функцию (вычислить значения)
. Значения x в диапазоне от 2.4 до 12 с шагом 0.8. Вывести значения в виде таблицы:

Лабораторная работа № 10. Использование цикла REPEAT с постусловием
Задача 1: Вычислить значения функции
и составить таблицу значений для х от 2 до 5 с шагом 0.5.
Листинг программы: PROGRAM CYCL_REPEAT; VAR X,Y:REAL; BEGIN WRITELN(' X | Y '); WRITELN(' ----------------- '); X:=2; {нижняя граница} REPEAT Y:=SQR(X)+2*X+5; {вычисление значения функции} WRITELN(X:6:2,' | ',Y:6:2); {вывод значений} X:=X+0.5; {шаг} UNTIL X=5.5; {проверка условия остановки цикла} END.
|  |
Задание для самостоятельной работы:
Изменить программу таким образом, чтобы запрашивалась нижняя и верхняя граница х (шаг 0.5 не изменять).
Протабулировать функцию (вычислить значения)
. Значения x в диапазоне от 2.4 до 12 с шагом 0.8. Вывести значения в виде таблицы.
3. Вывести на экран таблицу квадратов первых десяти натуральных чисел
4. Измените программу, чтобы выводились квадраты целых нечетных положительных чисел от 20 до 30
5. Вводится последовательность N целых чисел. Ввод прекращается, когда пользователь введет значение 0. Вычислить количество введенных чисел, их сумму и среднее значение.
Задача 2: Вывести на экран таблицу квадратов первых десяти натуральных чисел
X | X^2 |
0 | 0 |
1 | 1 |
2 | 4 |
3 | 9 |
4 | 16 |
5 | 25 |
6 | 36 |
7 | 49 |
8 | 64 |
9 | 81 |
Листинг программы
PROGRAM SQUARE;
USES CRT;
VAR S,I:INTEGER;
BEGIN
CLRSCR;
S:=0; I:=0;
WRITELN (' X | X^2 ');
WRITELN('-----------');
REPEAT {начало цикла}
S:=SQR(I);
WRITELN(I:3,' | ',S:3);
I:=I+1;
UNTIL I=10; {условие, при котором останавливается действие цикла}
READLN;
END.
Задание для самостоятельной работы:
Измените программу, чтобы выводились квадраты целых нечетных положительных чисел от 20 до 30
Вводится последовательность N целых чисел. Ввод прекращается, когда пользователь введет значение 0. Вычислить количество введенных чисел, их сумму и среднее значение.
Лабораторная работа № 11. Решение задач с использованием циклического алгоритма
Пользователь вводит любое слово. Необходимо вывести это слово N раз. N также вводится с клавиатуры и должно быть ≥0.
Написать программу, которая 10 раз выводит на экран имя и фамилию.
Написать программу, которая вычисляет сумму первых N положительных целых чисел. Количество суммируемых чисел должно вводиться во время работы программы.
Написать программу, которая вычисляет сумму первых N членов ряда 1+1/2+1/3+1/4+1/5+…. Количество суммируемых чисел задается во время выполнения программы.
Составить таблицу значений функции
при x от -3 до 3 (с шагом 0,5)
Написать программу, которая выводит таблицу степеней 2 (от 0 до 10).
Таблица степеней двойки |
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 | 256 |
9 | 512 |
10 | 1024 |
Дано натуральное n и действительное x. Вычислить значение: 
Вывести таблицу умножения.
Лабораторная работа № 12. Использование цвета
Программы можно оформлять, используя разный цвет для символов. Turbo Pascal поддерживает 16 основных цветов, для обозначения которых используется код цвета или его название на английском языке.
Для применения цвета используется функция TEXTCOLOR(ЦВЕТ), при этом обязательно должна быть подключена библиотека CRT. Цвет устанавливается ДО вывода символов!
Таблица цветов
Код | Название |
0 | black | черный |
1 | | |
2 | green | зеленый |
3 | | |
4 | red | красный |
5 | | |
6 | | |
7 | | |
8 | | |
9 | | |
10 | | |
11 | | |
12 | | |
13 | | |
14 | | |
15 | white | белый |
Задание. Вывести на экран 10 раз слово красным цветом.
Задание для самостоятельной работы:
Заполнить таблицу (записать в тетрадь) основных цветов.
Используя генератор случайных чисел, вывести 15 раз слово разными цветами.
Выяснить, что случится, если задать код цвета 15.
Вывести в строку числа от 10 до 20, причем четные – красным цветом, а нечетные – зеленым.
Лабораторная работа № 13. Создание меню
Используя цикл FOR, вывести на экран таблицу умножения на 2
Используя цикл WHILE, вывести на экран таблицу умножения на 4
Используя цикл REPEAT, вывести на экран таблицу умножения на 6
Написать программу-меню, объединив программы 1,2,3. Организовать выход из меню. Обработку пунктов реализовать с помощью оператора CASE.
Показать преподавателю 4 программы (1,2,3,4)
Составить блок-схему для программы-меню.
Меню
Таблица умножения на 2. (FOR)
Таблица умножения на 4. (WHILE)
Таблица умножения на 6. (REPEAT)
Выход
Лабораторная работа № 14. Обработка одномерного массива
Задача 1. Одномерный массив W состоит из 10 элементов, элементы – целые числа, вводятся с клавиатуры. Вывести массив на экран и вычислить сумму всех элементов.
Блок-схема
Листинг программы
PROGRAM MASSIV;
USES CRT;
VAR W:ARRAY[1..10] OF INTEGER; {описание одномерного массива}
I,SUMMA: INTEGER;
BEGIN
CLRSCR;
WRITELN('Введите элементы массива');
FOR I:=1 TO 10 DO {цикл для заполнения массива}
READLN(W[I]); {ввод элементов с клавиатуры}
WRITELN; {вставка пустой строки}
WRITELN('Вывод массива');
FOR I:=1 TO 10 DO {цикл для вывода массива}
BEGIN
SUMMA:=SUMMA+W[I]; {вычисление суммы элементов}
WRITE(W[I],' ');
END;
WRITELN;
WRITELN; {вставка пустой строки}
WRITELN('SUMMA = ',SUMMA);
READLN
END.
Задание для самостоятельной работы:
Изменить программу, чтобы вычислялось произведение всех элементов массива.
Изменить программу, чтобы элементы массива выбирались случайным образом из диапазона от 0 до 1 (действительные числа) с точность 3 знака после запятой.
Задача 2. Одномерный массив W состоит из 10 элементов, элементы – целые случайные числа из диапазона от -5 до 5. Вывести массив на экран и определить максимальный элемент массива.
Листинг программы
PROGRAM MASSIV;
USES CRT;
VAR W:ARRAY[1..10] OF INTEGER; {описание массива}
I,MAX: INTEGER;
BEGIN
CLRSCR;
RANDOMIZE;
MAX:=0;
FOR I:=1 TO 10 DO
W[I]:=RANDOM(11)-5; {заполнение массива случайными числами}
WRITELN;
WRITELN('Вывод массива');
FOR I:=1 TO 10 DO
BEGIN
IF W[I]MAX THEN MAX:=W[I]; {определение максимального элемента}
WRITE(W[I],' ');
END;
WRITELN;
WRITELN;
WRITELN('MAX = ',MAX);
READLN
END.
Задание для самостоятельной работы:
Измените диапазон выбора элементов: от -30 до 30
Измените программу, чтобы она определяла минимальный элемент массива
Измените программу, чтобы определялись и максимальный и минимальный элементы массива
Измените программу, чтобы определялись и максимальный и минимальный элементы массива и их позиция (индекс) в массиве
Лабораторная работа № 15. Решение задач на использование одномерных массивов
Дан одномерный массив Е (15). Элементы - случайные целые числа из диапазона от -15 до 15. Вывести массив в строку, определить, сколько элементов массива =0, 0 и
Дан одномерный массив T(25). Элементы – случайные целые числа из диапазона от 20 до 240. Вывести массив в строку, определить, сколько элементов массива четных, сколько нечетных.
Дан одномерный массив T(7). Элементы – латинские символы, введенные с клавиатуры. Вывести массив и определить сколько среди элементов букв ‘a’ , а сколько букв ‘t’.
Дано слово из 5 букв (буквы хранятся в массиве). Для каждой буквы определить ее ASCII-код. (Пример оформления результата)
Дан массив W(10), элементы которого генерируются из диапазона от -12 до +12. Вывести массив в виде строки. Вычислить сумму элементов, которые размещаются на четных местах. Вычислить произведение элементов, которые размещаются на нечетных местах.
Дан массив N(20), элементы которого генерируются из диапазона от -50 до +50. Определить максимальный и минимальный элементы массива и поменять их местами. Вывести исходный массив и измененный.
Дан массив K(16), элементы которого генерируются из диапазона от -20 до +20. Сформируйте из массива K массивы K1 И K2. В первый занесите все положительные элементы, во второй – отрицательные (ноль - не отрицательный не положительный). Вывести в виде строки массивы K, K1, K2.
Лабораторная работа № 16. Обработка двумерного массива
Задача 1. Дан двумерный массив R (10x10). Элементы случайные числа от 10 до 100. Заменить все четные элементы на 1, нечетные на 0. Вывести исходный массив и измененный.
Листинг программы
PROGRAM MASS2;
USES CRT;
VAR R:ARRAY[1..10,1..10] OF INTEGER;
I,J:BYTE;
BEGIN
CLRSCR;
RANDOMIZE;
FOR I:=1 TO 10 DO BEGIN
FOR J:=1 TO 10 DO
R[I,J]:=RANDOM(90)+10;
END;
{-------------------------}
WRITELN('ИСХОДНЫЙ МАССИВ');
FOR I:=1 TO 10 DO BEGIN
FOR J:=1 TO 10 DO BEGIN
WRITE(R[I,J]:4,' ');
END;
WRITELN;
END;
{--------------------------}
WRITELN;
WRITELN('НОВЫЙ МАССИВ');
FOR I:=1 TO 10 DO BEGIN
FOR J:=1 TO 10 DO BEGIN
IF R[I,J] MOD 2=0 THEN R[I,J]:=1 ELSE R[I,J]:=0;
WRITE(R[I,J]:4,' ');
END;
WRITELN;
END;
{------------------------}
READLN;
END.
Дорисуйте блок-схему
Задание для самостоятельной работы:
Дорисуйте блок-схему (в тетрадь)
Измените программу, чтобы диапазон выбора элементов был от -50 до 50. А замена элементов производилась следующим образом: отрицательные элементы заменить на -1, положительные на 1, нулевые – на 0.
Задача 2. Дан двумерный массив, элементы - случайные числа (положительные и отрицательные). Определить, сколько в массиве положительных элементов.
Листинг программы
………………………………………
CLRSCR;
RANDOMIZE;
{-----------------------------------------}
FOR I:=1 TO 5 DO
FOR J:=1 TO 5 DO
A[I,J]:=RANDOM(21)-10;
{----------------------------------------}
FOR I:=1 TO 5 DO
FOR J:=1 TO 5 DO
IF A[I,J]0 THEN P:=P+1;
{--------------------------------}
WRITELN('MASSIV:');
FOR I:=1 TO 5 DO
BEGIN
FOR J:=1 TO 5 DO
BEGIN
WRITE(A[I,J]:3,' ');
END;
WRITELN;
END;
{---------------------------------}
WRITELN;
WRITELN('Положительных элементов = ', P);
READLN;
END.
Задание для самостоятельной работы:
Набрать программу и дополнить недостающую часть (название программы, описание переменных и т.д.)
Определить, из какого диапазона выбираются случайные числа.
Изменить программу, чтобы также определялось количество отрицательных и нулевых элементов.
Изменить диапазон выбора от -50 до +50
Составить блок-схему для данной программы.
Написать программу (или изменить данную), чтобы положительные элементы были окрашены в красный цвет, отрицательные – в зеленый, нулевые – в желтый.
Лабораторная работа № 17. Решение задач с использованием двумерных массивов
Дан массив Р(10x10), элементы которого генерируются из диапазона от -50 до +50. Вывести массив на экран в виде таблицы. Элементы, расположенные по главной диагонали выделить другим цветом. Определить, сколько элементов массива больше 0, меньше 0, равно 0.
Дан массив Р(8x8), элементы которого действительные числа, которые генерируются из диапазона от -5 до +5. Вывести массив на экран в виде таблицы. Элементы, расположенные на четных местах (четная строка, четный столбец), выделить другим цветом.
Дан массив S(5x5). Заполните массив, если известно, что каждый элемент массива равен сумме номера строки и столбца, в которых элемент расположен. Вывести массив на экран в виде таблицы.
Определите принцип заполнения данного массива и составьте программу, которая реализует заполнение такого массива. Выведите его на экран. (Элементы нельзя заполнять вручную).
Дан массив Р(10x10), элементы которого генерируются из диапазона от -50 до +50. Сформировать из двумерного массива 2 одномерных: в один занесите положительные элементы, во второй – отрицательные, нули учитывать не надо. Вывести исходный и полученный массивы.
Лабораторная работа № 18. Использование процедур
Процедуры применяются для сокращения объема программы и выполнения часто повторяющихся действий в программе. Процедура по структуре очень похожа на структуру всей (основной) программы:
Procedure название (переменные : тип данных); Var переменные : тип данных; Begin …… …… …… End; |
Переменные, которые указываются после названия – это те переменные, значения которых берутся из основной программы.
Переменные, которые указываются после var, используются только внутри самой процедуры.
Процедуру можно вызвать из основной программы по ее названию и указанию в скобках переменных, которые будут использоваться в процедуре (эта строка выделена в листинге жирным начертанием). Процедуру можно вызвать любое количество раз. Идентификаторы переменных основной программы и процедуры могут быть разные.
Значение процедуры хранится внутри нее и в дальнейшем использоваться не может!
Далее приведены два варианта использования процедуры, которая вычисляет сумму двух действительных чисел.
1 вариант | 2 вариант |
Program q; Uses crt; {--------------------------------} Procedure summ(x,y,z:real); Begin z:=x+y; writeln('Summa = ', z:6:2); end; {--------------------------------} Var a,b,s:real; Begin clrscr; writeln('Vvedite 2 chisla'); Readln(a); Readln(b); summ(a,b,s); readln; end. | Program q; Uses crt; {------------------------------} Procedure summ(a,b:real); var summa:real; Begin summa:=a+b; writeln('Summa = ', summa:6:2); end; {-------------------------------} Var a,b:real; Begin clrscr; writeln('Vvedite 2 chisla'); Readln(a); Readln(b); summ(a,b); readln; end. |
Задание для самостоятельной работы:
Написать программу с использованием процедуры для вычисления суммы четырех действительных чисел.
Написать программу с использованием процедуры для вычисления выражения 
Написать программу с использованием процедуры для поиска максимального числа из двух действительных чисел, которые вводятся с клавиатуры.
Дано 2 числа. Если первое число больше второго, то вычислить сумму чисел. Если второе число больше первого, то вычислить произведение чисел. В случае равенства чисел не выполнять никаких вычислений. (Для вычисления суммы и произведения использовать процедуры).
Одномерный массив K(20) заполнен случайными числами от -20 до +20. Вывести массив на экран. Определить, количество отрицательных, количество положительных, количество четных, количество нечетных элементов. Результаты вывести на экран и записать в текстовый документ. Обработку массива выполнить в отдельной процедуре.
Написать программу, состоящую из трех подпрограмм и основной программы. Подпрограммы должны организовывать ввод чисел, вычисление их суммы и вывод результата.
Лабораторная работа № 19. Использование функций
Функции используются для сокращения объема программы и выполнения часто повторяющихся действий в программе.
Переменные, которые указываются после var, используются только внутри самой функции.
Функцию можно вызвать из основной программы по ее названию. Функцию можно вызвать любое количество раз. Идентификаторы переменных основной программы и функции могут быть разные или одинаковые.
Значение функции должно храниться в какой-либо переменной и ее можно использовать для последующих вычислений!
Далее приведены два варианта использования функции, которая вычисляет сумму двух действительных чисел.
1 вариант | 2 вариант |
program dex; uses crt; var a,b,s:real; {-----------------------------------} function summa(x,y:real):real; begin summa:=x+y; end; {-----------------------------------} begin clrscr; writeln('Vvedite 2 chisla'); readln(a,b); s:=summa(a,b); writeln ('summa chisel = ', s:6:2); readln; end. | program dex; uses crt; var a,b,s:real; {-----------------------------------} function summa:real; var x,y:real; begin writeln('Vvedite 2 chisla'); readln(x,y); summa:=x+y; end; {-----------------------------------} begin clrscr; s:=summa; writeln ('summa chisel = ', s:6:2); readln; end. |
Задание для самостоятельной работы:
Написать программу с использованием функции для вычисления суммы четырех действительных чисел.
Написать программу с использованием функции для вычисления выражения
. Функцию использовать для вычисления выражения (x2+1)
Написать программу с использованием функции для вычисления
и
. С помощью функций вычислить выражение: t:=
-
Одномерный массив K(20) заполнен случайными числами от -20 до +20. Вывести массив на экран. Определить максимальное, минимальное значение, количество нулевых элементов. Результаты вывести на экран и записать в текстовый документ. Использовать для обработки массива функции.
Вычисление факториала числа N.
Написать программу, которая вычисляет периметр треугольника, если известны координаты его вершин. Формулу для вычисления расстояния
(где x1, у1; x2, y2 — координаты точек ) оформить в виде подпрограммы.
Лабораторная работа № 20. Графические возможности Turbo Pascal
Для формирования графических изображений предназначен стандартный библиотечный модуль graph. В нем содержится 79 графических процедур, функций, десятки стандартных констант и типов данных. Все они составляют единый комплекс средств, позволяющих разрабатывать программные продукты.
Запуск графической системы:
USES GRAPH {подключение модуля graph}
VAR DR, MD: INTEGER; {описание переменных driver (драйвер) и mode (режим) для определения режима работы графического системы}
BEGIN
DR:=DETECT; {автоматический подбор драйвера}
INITGRAPH (DR, MD,’C:\PROGRAM\TP\BGI’); {инициализация граф. системы}
………………………….
{окончание работы графической системы}
CLOSEGRAPH
Процедуры построения графических примитивов
Все изображения, построенные в графическом режиме, состоят из точек (пикселей). Для построения изображения на экране используется система координат. (x=640, y=480)

1. Вывод точки осуществляется процедурой:
PutPixel (x,y,color); - x,y – координаты, color – цвет
Например: PutPixel (10,10,2); - вывод точки на экран с координатами 10,10 зеленого цвета
PutPixel (10,100,Magenta); - вывод точки на экран с координатами 10,100 малинового цвета
Цветовая шкала
Цвет | Код | Цвет | Код |
Black - черный | 0 | DarkGray – темно-серый | 8 |
Blue – синий | 1 | LightBlue – ярко-голубой | 9 |
Green – зеленый | 2 | LightGreen – ярко-зеленый | 10 |
Cyan – бирюзовый | 3 | LightCyan – ярко-бирюзовый | 11 |
Red – красный | 4 | LightRed – ярко-красный | 12 |
Magenta – малиновый | 5 | LightMagenta – ярко-малиновый | 13 |
Brown – коричневый | 6 | Yellow – желтый | 14 |
LightGray – светло-серый | 7 | White - белый | 15 |
2. Построение линии выполняется процедурой:
Line (x1,y1,x2,y2); - x1,y1 – rкоординаты начала линии, x2,y2 – координаты конца линии
Также для построения линий используются еще 2 процедуры:
LineTo (x,y:integer); - построение линии из точки текущего положения в точку с координатами x,y
LineRel (dx,dy:integer); - строит линию из точки текущего положения в точку, смещенную на dx по оси x, dy по оси y.
3. Построение прямоугольника
Rectangle (x1, y1, y1, y2); x1,y1 – координаты левого верхнего угла прямоугольника,x2,y2 – координаты правого нижнего угла прямоугольника.
4. Построение закрашенного прямоугольника
Bar (x1, y1, x2 ,y2 : integer);
5. Построение окружности
circle (x,y,r); x,y – координаты центра, r – радиус
6. Построение дуги
Arc (x, y : integer; StAngle, EndAngle, Radius : word );
x, y - rкоординаты центра, StAngle, EndAngle – начальный и конечный углы дуги, Radius – радиус дуги
7. Построение эллипса и эллипсовидных дуг
ellipse (x,y: integer; StAngle, EndAngle : word ; xr , yr : word);
x,y – координаты центра, StAngle, EndAngle – начальный и конечный углы эллипса, xr, yr – горизонтальная и вертикальная оси)
TP позволяет вычерчивать линии разного стиля: тонкие, широкие, сплошные, штриховые, пунктирные и т.д.
Для установки стиля при построении графических примитивов используется процедура:
SetLineStyle (LineStyle:word;Pattern:word;Thckness:word); - LineStyle – стиль линии, Pattern – образец, Thckness – толщина линии.
Если используется стандартный образец линии, то параметр Pattern=0.
Стиль линии Толщина линии
Константа | Значение | Описание | Константа | Значение | Описание |
SolidLn | 0 | Непрерывная линия | NormWidth | 1 | Нормальная толщина (1 пиксел) |
DottedLn | 1 | Линия из точек | ThickWidth | 3 | Жирная линия (3 пикселя) |
CenterLn | 2 | Линия из точек и тире | | | |
DashedLn | 3 | Штриховая линия | | | |
UserBitLn | 4 | Тип пользователя | | | |
Процедура используется до построения примитивов!
Например: SetLineStyle (DottedLn,0,NormWidth); Line (10,10,150,150);
SetLineStyle (1,0,1); Line (10,10,150,150);
Процедуры для перемещения указателя из текущего положения
1. MoveTo (x,y:integer); - перемещение текущего указателя в точку с координатами x,y
Например: MoveTo (100,200); - перемещение текущего указателя курсора в точку 100,200
2. MoveRel (dx,dy:integer); - перемещение текущего указателя на расстояние dx по оси x, dy по оси y.
Например: MoveRel (5,10); - перемещение текущего указателя курсора на 5 единиц по оси x, 10 единиц по оси y.
Процедуры установки цвета
При работе в графическом режиме команды textcolor и clrscr применять нельзя!
Setbkcolor(Color) – установка цвета экрана!
Установка цвета графики осуществляется процедурой:
SetColor (Color); – Color-цвет, значение которого берется из таблицы.
Процедура используется до построения графических примитивов.
Заливка фигур
Прежде чем использовать заливку, надо настроить стиль заливки. Для использования процедуры заливки контур должен быть замкнутым.
SetFillStyle (p , Сolor);
p – модель. Может принимать значения от 0 до 12.
0 – цвет фона
1 – заполнение одним цветом
7 – заполнение в клетку
8 – заполнение в косую клетку
9 – заполнение частой сеткой
10 – заполнение редкими точками
11 – заполнение частыми точками
Однородная заливка
FloodFill (x,y,border); x,y – координаты точки, находящейся в контуре; border – цвет границы
Работа с текстом
В графическом режиме вывод текста процедурой write запрещен! Для этой цели используются следующие процедуры:
OutText(text:string); - выводит строку текста, начиная с текущего положения курсора
Например: OutText (‘текст’); или a:=’текст’; OutText (a);
OutTextXY(x,y:integer; text:string ); - выводит строку текста начиная с позиции с координатами x,y
Например: OutTextXY (100, 100; ‘текст’); или a:=’текст’; OutTextXY (100, 100; a);
Вывод численных значений
В модуле graph нет процедуре, предназначенных для вывод численных значений. Поэтому сначала число сначала нужно преобразовать в строку (с помощью процедуры str), затем с помощью конкатенации (+) соединить полученную строку к выводимой строке.
Например: max:=34.56;
str (max:6:2, smax); {результат преобразования в строке smax}
OutTextXY (40,400, ‘Максимум = ’+smax);
Шрифты
Различают 2 типа шрифтов: растровый и векторный. Растровый шрифт задается матрицей точек, а векторный – векторами, которые составляют символ. При увеличении растрового символа можно различить составляющие точки (эффект - пикселизация) и качество изображения снижается. При увеличении векторного символа качество изображения не ухудшается. По умолчанию после инициализации графического режима устанавливается растровый шрифт DefaultFont. Каждый его символ формируется в матрице 8x8 бит. Шрифты хранятся в отдельных файлах с расширением *.chr.
Установить шрифт можно с помощью процедуры:
SetTextStyle (Font:byte; Direction:byte; CharSize:byte)
Font – шрифт
Direction – направление (0 – горизонтальное, 1 - вертикальное)
CharSize – размер символов (может принимать значения от 1 до 32: 1 – матрица 8х8, 2 – матрица 16х16 и т.д)
Константа | Значение | Описание |
DefaultFont | 0 | матрица 8х8 |
TriplexFont (trip.chr) | 1 | штриховой шрифт |
SmallFont (litt.chr) | 2 | малый шрифт |
SansSerifFont (sans.chr) | 3 | Сансериф |
GothicFont (goth.chr) | 4 | Готический |
Например:
а) SetTextStyle (0,1,1);
{вывод на экран вертикальной строки шрифтом DefaultFont стандартного размера}
OutTextXY (200,200, ‘Вертикальная строка’);
б) SetTextStyle (0,0,2);
{вывод на экран горизонтальной строки шрифтом DefaultFont, размер увеличен в 2 раза}
OutTextXY (200,200, ‘Горизонтальная строка’);
Задачи для самостоятельной работы:
Используя графические возможности, создайте графическое изображение
Используя графические возможности, создайте графическое изображение

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

Используя графические возможности, создайте графическое изображение

Используя графические возможности, вывести в центре экрана фразу «ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ» красного цвета, вокруг текста прямоугольник синего цвета.
Используя графические возможности, вывести в центре экрана фразу «TURBO PASCAL» желтого цвета, вокруг текста прямоугольник красного цвета.
Используя графические возможности, вывести на экран произвольный треугольник, для контура задать зеленый цвет, для заливки – заполнение редкими точками желтого цвета. Снизу треугольника вывести текст «ЭТО ТРЕУГОЛЬНИК» красного цвета.
Используя графические возможности, вывести на экран произвольный пятиугольник, для контура задать синий цвет, для заливки – заполнение в клетку желтого цвета. Сверху пятиугольник вывести текст «ЭТО ПЯТИУГОЛЬНИК» красного цвета.
Используя графические возможности языка Pascal нарисовать следующие изображения
Дерево может быть более упрощено, для построения использовать минимум 5 дуг.
Используя циклический алгоритм построить следующие изображения:
Лабораторная работа № 21. Работа с файлами
Использовать файлы в программировании удобно, когда:
необходимо сохранять выходные данные при отладке;
использовать большое количество входных данных;
приходится многократно вводить одну и ту же информации, с минимальными изменениями или вовсе без изменений.
В зависимости от способа объявления можно выделить три вида файлов:
типизированные файлы (задаются предложением FILE OF);
текстовые файлы (определяются типом TEXT);
нетипизированные файлы (определяются типом FILE).
assign(f,'имя_файла'); — устанавливает связь между файловой переменной и самим файлом которая помогает нам это сделать. Фактически мы говорим, что переменной f соответствует такое-то имя файла. Например текстовый файл input.txt
Здесь подразумевается, что файл с самой программой находится в той же папке, что и текстовый файл input.txt. Если же он в другой папке, то нам нужно указать относительное расположение этого файла.
‘Имя_файла’ — полный путь к указанному файлу, записанный в относительной или абсолютной форме.
Как создать, открыть, сохранить и закрыть файл?
После того как мы установили соответствие файловой переменной и самого файла мы можем начинать выполнять различные операции над этим файлом:
Открыть для чтения reset(f); Если файла не существует, то будет выведена ошибка.
Создать или перезаписать rewrite(f); Если файла не существует, то он будет создан.
Создать или открыть и дописать в конец файла append(f); Если файла не существует, то он будет создан.
Сохранить и закрыть файл close(f);
Естественно то, что мы только что перечислили это просто внешняя работа с файлом.
Как использовать или изменить содержимое файла?
Для того что бы делать какие-либо внутренние изменения в самом файле так же существуют команды
read(f,a,b); — читать из файла f две переменные a и b. После выполнения этой процедуры указатель в файле передвинется за переменную b;
readln(f,a,b,c); — читать из файла f три переменные a, b и c, а затем перевести указатель (курсор) на начало следующей строки; если кроме уже считанных переменных в строке содержалось еще что-то, то оно будет проигнорировано.
write(f,a,b,c); — записать в файл f переменные a,b и c;
writeln(f,a,b); — записать в файл f переменные a и b, а затем записать туда же символ "конец строки".
Пример:
Задача. Сформировать текстовый файл с помощью Паскаля, а затем переписать из данного файла во второй файл только те строки, которые начинаются с буквы «А» или «а».
PROGRAM PRIMER;
VAR F1,F2:TEXT;
I,N: INTEGER;
S: STRING;
BEGIN
{ФОРМИРУЕМ ПЕРВЫЙ ФАЙЛ}
ASSIGN(F1, ‘FILE1.TXT’); {устанавливаем связь файловой переменной с файлом на диске}
REWRITE(F1); {открываем файл для записи}
READLN(N); {определим количество вводимых строк}
FOR I:=1 TO N DO
BEGIN
READLN(S); {вводим с клавиатуры строки}
WRITELN(F1,S); {записываем последовательно строки в файл}
END;
CLOSE(F1); {заканчиваем работу с первым файлом, теперь на диске существует файл с именем file1.txt, содержащий введенные строки. }
{ЧАСТЬ ВТОРАЯ: ЧТЕНИЕ ИЗ ПЕРВОГО ФАЙЛА И ФОРМИРОВАНИЕ ВТОРОГО}
RESET(F1); {открываем первый файл для чтения}
ASSIGN(F2, ‘FILE2.TXT’); {устанавливаем связь второй файловой переменной с файлом}
REWRITE(F2); {открываем второй файл для записи}
{дальше необходимо последовательно считывать строки из первого файла, проверять выполнение условия и записывать нужные строки во второй файл. для чтения из текстового файла рекомендуется использовать цикл по условию «пока не конец файла»}
WHILE NOT EOF(F1) DO
BEGIN
READLN(F1,S);{считываем очередную строку из первого файла}
IF (S[1]=’A’) OR (S[1]=’A’) THEN
WRITELN(F2,S); {записываем во второй файл строки, удовлетворяющие условию}
END;
CLOSE(F1,F2); {ЗАКАНЧИВАЕМ РАБОТУ С ФАЙЛАМИ}
{часть третья: выводим на экран второй файл}
WRITELN;
WRITELN(‘ВТОРОЙ ФАЙЛ СОДЕРЖИТ СТРОКИ:’);
RESET(F2); {открываем второй файл для чтения}
WHILE NOT EOF(F2) DO {пока не конец второго файла}
BEGIN
READLN(F2,S);{считываем очередную строку из второго файла}
WRITELN(S); {выводим строку на экран}
END;
END.
Задачи для самостоятельной работы:
Создать текстовый документ itog.txt, в который записать 10 случайных целых чисел в диапазоне от -20 до 20. Определить количество положительных и отрицательных чисел, записанных в файле itog.txt. Вывести на экран и записать в файл itog.txt результаты обработки чисел.
Создать текстовый документ odin.txt, в который записать 30 случайных целых чисел в диапазоне от -200 до 200. Определить количество одноразрядных, двухразрядных и трехразрядных чисел, записанных в файле odin.txt. Вывести на экран и записать в файл itog.txt результаты обработки чисел.
Дан одномерный массив A(25). Заполнить массив случайными числами (диапазон от -100 до 100). Определить максимальный элемент массива и записать его вместо нулевых элементов массива (если таковые имеются). Вывести на экран и в файл исходный измененный массив.
Создать текстовый файл, в который записать 3 предложения. Прочитать этот файл, вывести его содержимое на экран. Определить длину каждого предложения.
Вывести на экран узор (символ и количество строк задаются пользователем, количество строк должно быть нечетным и =7)
*
***
*****
*******
*****
***
*
Узор вывести на экран и записать в текстовый файл
Лабораторная работа № 22. Задания для самостоятельной работы
Составить тест, состоящий из 10-ти вопросов. Программа должна выводить вопросы, спрашивать ответы на вопросы и выводить оценку. (Примерные темы для теста: таблица умножения, сложение, вычитание, основы информатики, и т.д.). Можно использовать циклический алгоритм и генератор случайных чисел.
Написать программу, которая по заданному трехзначному числу выводит словесную запись соответствующего ему количественного числительного. Например, если задано число 311, то программа должна вывести сообщение ТРИСТА ОДИННАДЦАТЬ.
Написать программу, которая проверяет ввод пароля и выводит соответствующее сообщение («Неправильный пароль, попробуйте еще раз» или «Пароль верный, вы получили доступ»). Пароль задать константой в виде строковой величины с использованием строчных и прописных букв (пароль минимум 5 символов). Для неоднократной проверки использовать циклический алгоритм. После трехкратного неправильного ввода, программа должна закончить работу и вывести сообщение «Система заблокирована».
Вывести на экран таблицу значений функции y=x3 при изменении x от 2 до 12 с шагом 0,1. Числа должны выводиться с 2 знаками после десятичной точки. Вид таблицы должен быть следующий:
| 0 | 0,1 | 0,2 | 0,3 | 0,4 | 0,5 | 0,6 | 0,7 | 0,8 | 0,9 |
2 | | | | | | | | | | |
3 | | | | | | | | | | |
……………………………………………………………… |
12 | | | | | | | | | | |
Пользователем вводится любая символьная строка и координаты курсора, с которых следует это слово вывести на экране. Над словом и под словом должны быть выведены символы для украшения (Символ вводит пользователь, количество выводимых символов должно быть больше длины строки на 2).
Пример выполнения программы: ******* slovo ******* |
Вывести на экран таблицу значений функции y=x4 при изменении x от 3 до 13 с шагом 0,2. Числа должны выводиться с 2 знаками после десятичной точки. Вид таблицы должен быть следующий:
| 0 | 0,2 | 0,4 | 0,6 | 0,8 |
3 | | | | | |
4 | | | | | |
……………………………………………………………… |
13 | | | | | |
Определить, является ли введенное слово палиндромом (т.е. читается слева-направо и справа-налево одинаково). Например: kazak, казак, поп, потоп и т.д.
Написать программу, которая предлагает на выбор вычисление площади прямоугольника или окружности. Для вычисления площадей фигур составить подпрограммы.
Написать подпрограмму, которая будет преобразовывать введенное с клавиатуры слово в последовательность ASCII-кодов (Например, Т Е К С Т - 162 149 154 161 162. Для определения ASCII-кода символа используется функция ORD(X))
Написать функцию, которая возвращает значение TRUE, если введенное с клавиатуры число простое, в противном случае возвращает значение FALSE.
Дан массив из 20 элементов, которые являются символами. Написать подпрограмму, которая распределит элементы массива на два - гласные и согласные буквы.
62