- •Алгоритмы, структуры данных и программирование
- •Қасымқанұлы Бөрібай, к.Ф.-м. Н., доцент кафедры высшей математики Костанайского государственного педагогического института
- •Работа №1
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •1 Способ:
- •2 Способ:
- •3 Задачи
- •4 Тесты
- •Работа №2
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №3
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Примеры решения задач
- •3 Задачи
- •4 Тесты
- •Работа №4
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №5
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №6
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №7
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы.
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №8
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №9
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №10
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №11
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №12
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №13
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №14
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №15
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Контрольные вопросы
- •Ответы к тестовым заданиям
3 Задачи
В центре экрана вывести прямоугольник из звездочек, внутри него любое слово. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести треугольник из звездочек, внутри него любое слово. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести ромбик из звездочек, внутри него любое слово. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести квадрат из звездочек, внутри него любое слово. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести домик из звездочек, внутри него любое слово. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести домик из звездочек. Использовать очистку экрана цветом, изменить цвет символов.
В центре экрана вывести елочку из звездочек. Использовать очистку экрана цветом, изменить цвет символов.
На экран вывести прямоугольник обрамляющий весь экран в центре него слово. Использовать очистку экрана цветом, изменить цвет символов.
4 Тесты
Истина или ложь?
Возможно ли использование для очистки экрана цветом только одной функции TextBackGround?
Верно ли, что после зарезервированных слов WhereX и WhereУ на экране произойдет отображение координат курсора?
В Turbo Pascal предусмотрен единственный оператор смещения курсора– gotoxy.
Оператор ReadKey позволяет осуществить нажатие на одну из двух клавиш.
Цвет текста выводимого на экране можно изменить используя функцию TextColor.
В Turbo Pascal цвет символов обозначается целым числом из интервала 0..15.
Для определения положения курсора служат функции WhereX и WhereY.
Чтобы ограничить область экрана, которая используется для ввода и вывода, можно использовать процедуру определения текстового окна: Window(x1,y1,x2,y2).
Перейти в текстовый режим можно используя подключение модуля Crt.
Модуль Crt можно объявить после зарезервированного слова var.
Работа №7
Тема: Решение задач с использованием линейных массивов
Цель: Закрепить теоретический материал по линейным массивам. Научиться решать задачи с использованием линейных массивов
1 Перечень знаний и умений, необходимых для выполнения лабораторной работы.
Перед тем, как приступить к выполнению лабораторной работы, студенту необходимо ознакомиться со следующим материалом:
понятие вектора (линейного массива);
понятия элемента массива и позиционного номера элемента в массиве;
способы доступа к элементам массива;
способы объявления массива.
2 Пример решения задачи
Поменять местами минимальный и максимальный элементы линейного массива.
(4 17 2 5 3 1 10 13)=>(4 1 2 5 3 17 10 13).
Решение задачи состоит из трех этапов:
ввод данных;
преобразование вектора;
вывод результата.
При решении будут использованы следующие переменные:
kol: integer – количество элементов в векторе, не превышающее 50;
а: array [1..50] of integer – вектор а;
i: integer – переменная для перебора элементов вектора;
max, k: integer – значение максимального элемента и его позиционный номер в линейном массиве;
min, t: integer – значение минимального элемента и его позиционный номер в линейном массиве;
dop: integer – дополнительная переменная для обмена элементов в массиве.
Реализация первого этапа.
Поскольку пользователь может работать с вектором, состоящим менее, чем из 50 элементов целесообразнее сначала узнать какое количество элементов будет находиться в векторе.
writeln (‘Укажите количество элементов вектора (< 50)’);
read (kol);
Если пользователь ввел по ошибке число больше 50 или меньше 1, необходимо выдать соответствующее сообщение и повторно запросить количество элементов.
1: writeln (‘Укажите количество элементов вектора (< 50)’);
read (kol);
if (kol>50) or (kol<1) then
begin
writeln (‘Неверно задано количество элементов’);
goto 1;
end;
Далее следует выдать на экран число запросов равное kol, для ввода элементов линейного массива.
for i:=1 to kol do
begin
writeln (‘Укажите ’, i, ‘-ый элемент линейного массива’);
read(a[i]);
end;
Реализация второго этапа.
После того как ввод массива завершен, необходимо найти элементы с максимальным и минимальным значением, а затем поменять их местами.
max:=a[1]; min:= a[1];
{в начале предполагается, что минимальное и максимальное значения находятся в первой ячейке массива}
k:=1; t:=1; {запоминается позиционный номер элементов, имеющих минимальное и максимальное значения}
Для поиска максимального и минимального значений организуется цикл.
for i:=1 to kol do
begin
if a[i]> max then {если текущий элемент больше максимального значения}
begin
max:= a[i]; {запоминается новое максимальное значение}
k:=i; {запоминается позиционный номер максимального элемента}
end;
if a[i]< min then {аналогично для поиска минимального значения}
begin
min:= a[i]; t:=i;
end;
end;
После того как элементы найдены, их необходимо поменять местами (см. рисунок 5.1)
Рисунок 5.1 – Обмен местами максимального и
минимального элементов
dop:= a[k];
a[k]:= a[t];
a[t]:= dop;
Реализация третьего этапа.
writeln (‘Ответ: ’);
for i:=1 to kol do {организуется цикл перебора элементов}
write (a[i], ‘ ’); {выводится на экран элемент с позиционным номером i}
После объединения всех этапов исходный текст программы примет вид:
program vector;
uses crt;
label 1;
var a: array[1..50] of integer;
dop, kol, i, max, k, min, t: integer;
begin clrscr;
1: writeln (‘Укажите количество элементов вектора (< 50)’);
read (kol);
if (kol>50) or (kol<1) then
begin
writeln (‘Неверно задано количество элементов’);
goto 1;
end;
for i:=1 to kol do
begin
writeln (‘Укажите ’, i, ‘-ый элемент линейного массива’);
read(a[i]);
end;
min:= a[1]; max:= a[1]; k:= 1; t:=1;
for i:=1 to kol do
begin
if a[i]> max then begin max:= a[i]; k:=i; end;
if a[i]< min then begin min:= a[i]; t:=i; end;
end;
dop:= a[k];
a[k]:= a[t];
a[t]:= dop;
writeln (‘Ответ: ’);
for i:=1 to kol do write (a[i], ‘ ’);
end.
