- •Пояснительная записка
- •Программирование на алгоритмическом языке pascal
- •«Ознакомление с работой в интегрированной среде Borland Pascal»
- •Задание 1
- •Ход работы:
- •Загрузите систему Borland Pascal.
- •После входа в систему появляется рабочий экран (рис. 2).
- •Изучите пункты главного меню.
- •Задание 2
- •Методические указания к лабораторным занятиям для учащихся.
- •Лабораторная работа №1
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Ход выполнения работы.
- •Задание 2
- •Лабораторная работа №2
- •Краткие теоретические сведения
- •Правила работы с условным оператором.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2.
- •Задание 3
- •Правила организации цикла с параметром.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2
- •Решение:
- •Задачи для самостоятельного решения.
- •Лабораторная работа №4. Тема: «Разработка, отладка и испытание простых циклических алгоритмов и программ с неизвестным числом повторений».
- •Краткие теоретические сведения
- •Вопросы для самоподготовки:
- •Задание 1
- •Решение:
- •Задание 2
- •Домашнее задание
- •Вопросы для самоподготовки:
- •Определим необходимые формулы:
- •Составим графическую схему алгоритма.
- •Составим таблицу соответствия переменных.
- •В соответствии с пунктами 2 и 3 составьте программу.
- •Задание 2
- •Задание 3
- •Решение:
- •Составим графическую схему алгоритма:
- •Составим таблицу соответствия переменных
- •Составим программу на языке Pascal.
- •Задание 4
- •Лабораторная работа №6. Тема: «Разработка, отладка и испытание циклических алгоритмов и программ с известным числом повторений с внутренними ветвлениями».
- •Задание
- •Задание 2
- •Решение:
- •Задание 3
- •Решение:
- •Задание 4 (задачи повышенной сложности)
- •Решение:
- •Задания для самостоятельного решения. Напишите программы с использованием процедур.
- •Дана последовательность слов. Напечатайте все слова, предварительно преобразовав каждое из них по следующему правилу:
- •Задание 5
- •Решение:
- •Задание 8 (повышенной сложности)
- •Решение:
- •Задание для самостоятельного решения:
- •(Повышенной сложности)
- •Лабораторная работа №8. Тема: «Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов. Организация ввода-вывода с помощью текстовых файлов».
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Решение:
- •Составим графическую схему алгоритма.
- •Составляем таблицу соответствия переменных.
- •Составляем программу на языке программирования Pascal.
- •Задание 3
- •Задание 4
- •Лабораторная работа №9. Тема: «Разработка алгоритмов и программ решения различных задач с использованием библиотечных модулей пользователя».
- •Краткие теоретические сведения
- •Задание
- •Задача для самостоятельного решения.
- •Лабораторная работа №10. Тема: «Разработка алгоритмов и программ обработки строк. Использование множеств для решения задач».
- •Вопросы для самоподготовки:
- •Задание 6
- •Решение:
- •Задачи для самостоятельного решения:
- •Лабораторная работа №11. Тема: «Разработка алгоритмов и программ с использованием методов внутренней сортировки».
- •Задание
- •Решение:
- •Для каждой команды в одной строке введите через пробел
- •Задание для самостоятельного решения:
- •Лабораторная работа №12. Тема: «Разработка рекурсивных алгоритмов и программ».
- •Краткие теоретические сведения
- •Задание.
- •Лабораторная работа №13. Тема: «Разработка алгоритмов и программ с использованием процедур и функций модулей crt и dos».
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание.
- •Краткие теоретические сведения
- •Решение:
- •Задание 2
- •Андреев
- •Задание для самостоятельного решения.
- •Лабораторная работа №16. Тема: «Разработка алгоритмов и программ с использованием динамических структур данных».
- •Краткие теоретические сведения
- •Задание
- •Задание для самостоятельного решения
- •Задача о «Ханойских башнях».
- •Решение:
- •Задания для самостоятельного решения.
- •Задание для самостоятельного решения:
- •Задания для самостоятельного решения:
- •Лабораторная работа №22. Тема: «Разработка программ обработки созданных файлов».
- •Постановка задачи
- •Содержание отчета
- •Варианты задания:
- •Лабораторная работа №23. Тема: «Разработка программ с использованием прерываний bios и dos, процедурных типов».
- •Краткие теоретические сведения
- •Константы
- •Задание
- •Задание для самостоятельного решения.
- •Лабораторная работа №25. Тема: «Разработка простейших программ с использованием компонентов страницы Standart».
- •Вопросы для самоподготовки:
- •Задание 1
- •Лабораторная работа №26. Тема: «Разработка программ обработки массивов с использованием компонентов страницы Standart».
- •Задание
- •Procedure tForm1.Button2Click (Sender: tObject); {обработка массива}
- •Лабораторная работа №32. Тема: «Разработка программ создания и использования мультимедийных возможностей».
- •Задание
- •Лабораторная работа №34. Тема: «Создание и использование справочной системы».
- •Краткие теоретические сведения
- •Задание
- •Ход работы:
- •Лабораторная работа №35. Тема: «Создание установочного диска».
- •Задание
Задание 2
Напишите процедуру заполнения массива А размером n х m следующим образом (по “змейке”).
Например, при n=6 и m=8
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
.. |
.. |
.. |
.. |
.. |
.. |
.. |
.. |
48 |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
Решение:
Для того, чтобы заполнить массив указанным образом, выведем правило заполнения.
В данном случае:
Если ряд нечетный (то есть когда, номер строки i нечетное число):
А[i, j] = (i-1)*m+j;
Если ряд четный: A[i, j] = i*m – j+1.
Тогда искомая процедура имеет вид:
Procedure fill (var x: dm);
Var
i, j: integer;
begin
for i:=1 to n do
for j:=1 to m do
if i mod 2=1
then x[i,j]:=(i-1)*m+j
else x[i,j]:=i*m-j+1
end;
Задание 3
Дана строка, состоящая из нескольких слов, между словами один пробел, в конце строки – точка. Подсчитайте количество слов и выведите на экран только те из них, которые начинаются с буквы “a” (слов не больше 30).
Решение:
Разобьем предложение на отдельные слова и каждое будем хранить как элемент массива строк.
Program slova;
const
n=30;
Type
mstr=array[1.. n] of string;
var
a: mstr;
str: string [255];
k: byte;
Procedure Init (var b: mstr);
Var
i: integer;
begin
k:=1;
{пока не встретится пробел, формируем очередное слово k, прибавляя по одной букве}
for i:=1 to lengch (str) –1 do
if str[i] <>’ ‘
then b[k]:=b[k]+str[i]
else
{если это не последний символ, то увеличиваем счетчик слов и начинаем формировать очередное слово}
if i <> Lengch (str)-1
then
begin
inc (k);
b[k]:=’ ‘
end
end;
begin
writeln (‘Введите предложение’, k);
readln (str);
Init (A);
writeln (‘Всего слов’, k-1);
{Просматриваем все слова, если первый символ очередного слова равен букве ‘a’, то выводим его}
for i:=1 to k do
if a[i][1]=’a’
then write (A[i], ‘ ‘);
readln
end.
Задание 4 (задачи повышенной сложности)
Напишите процедуру, которая выводит на экран рамку. В качестве параметров процедуре должны передаваться координаты верхнего угла рамки и её размер.
Решение:
Procedure frame (l: integer; t: integer; w: integer; h: integer);
{l, t – координаты верхнего левого угла, w – ширина рамки, h – высота рамки}
var
x, y: integer; {координаты выводимого символа}
i: integer;
c1, c2, c3, c4, c5, c6: char; {символы, из которых рисуется рамка}
begin
c1:=chr (218); {символ верхнего левого угла}
c2:=chr (196); {символ горизонтальной линейки}
c3:=chr (191); {символ правого верхнего угла}
c4:=chr (179); {символ вертикальной линейки}
c5:=chr (192); {символ левого нижнего угла}
c6:=chr (217); {символ правого нижнего угла}
GoToXY (l, t);
write (c1);
for i:=1 to w-2 do {символы верхней границы рамки}
write (c2);
write (c3);
y:=t+1;
x:=l+w-1;
for i:=1 to h-2 do {символы левой и правой границ}
begin
GoToXY (l, y);
write (c4);
GoToXY (x, y);
write (c4);
y:=y+1;
end;
GoToXY (l, y);
write (c5);
for i:=1 to w-2 do {символы нижней границы}
write (c2);
write (c6);
end.
