рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Базовые конструкции и стандартные типы данных в Паскале

Базовые конструкции и стандартные типы данных в Паскале - раздел Образование, Федеральное Агентство По Образованию Российской Федерации Госуд...

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

 

 

Н.В. Аншакова, М.Б. Беляева

Базовые конструкции и
стандартные типы данных в Паскале

 

(Turbo Pascal 7.0. Начальный курс. Практикум.)

 

Уфа

РИО БашГУ

 

 


УДК

ББК

Рецензенты:

1. заведующий кафедрой Математики и Информатики МПСИ, кандидат технических наук, доцент Т.Х. Агишев;

2. заведующий кафедрой ЕМД МГОПУ им. Шолохова, кандидат физико-математических наук, доцент А.В. Дорофеев.

 

Н.В. Аншакова, М.Б. Беляева

  Настоящее пособие может быть использовано при обучении курса…  

Пустой и составной операторы

В программе может применяться пустой оператор, не выполняющий никакого действия. Он представляет собой точку с запятой.

Составным оператором считается последовательность произвольных операторов, заключенная в операторные скобки - зарезервированные слова begin ... end. Допускается произвольная глубина вложенности составных операторов. Составной оператор применяется там, где по синтаксическим правилам языка может стоять только один оператор, а нам надо выполнить несколько действий. В этом случае набор необходимых команд должен быть оформлен как составной оператор. По сути, все тело программы представляет собой один составной оператор.

Простейший ввод и вывод данных

По умолчанию ввод данных осуществляется с клавиатуры, а вывод информации на экран монитора. К операторам ввода относятся:

Read(<список переменных >);

Readln(<список переменных>);

Readln;

Write(<список вывода>); Writeln(<список вывода>); Writeln;

Оператор присваивания

Оператор присваивания используется для задания значения переменных и имеет следующий синтаксис: идентификатор:= выражение;

Вычисляется выражение, стоящее в правой части оператора, после чего его значение записывается в переменную, имя которой стоит слева. Тип выражения и тип переменной должны быть совместимы, т.е. множество допустимых значений выражения содержится во множестве допустимых значений переменной.

Выражения

Выражение в языках программирования всегда имеет значение определенного типа, которое вычисляется за конечное число шагов. При записи выражений используются имена переменных и функций, обращение к элементам массива, знаки операций, определенные для соответствующего типа, круглые скобки. Количество открывающихся и закрывающихся скобок должно совпадать. Если значение выражения является числом, то говорят, что это числовое выражение. Если выражение принимает значение, например логического типа, то говорят, что это логическое выражение, т. е. если значение выражения имеет тип Т, то говорят, что это выражение типа Т. При записи выражения какого-либо типа можно использовать только операции и функции, допустимые для соответствующего типа значений.

Например: выражение -1+ -2 является числовым выражением и принимает целочисленное значение –3; конструкция 2+*4 – не является выражением, как и конструкция ‘s’*’a’ или ‘s’+’a’+1.

Старшинство операций

При определении порядка выполнения операций следует учитывать следующее: · операнд, находящийся между двумя операциями с различными приоритетами,… · операнд, находящийся между двумя операциями с равными приоритетами, относится к той операции, которая находится…

Арифметические выражения

Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними.

Пример 1

3*a*b/-z - выражение записано неверно.

3*a*b/(-z) - верная запись.

Необходимо помнить, что вычисления выполняются слева направо в соответствии со старшинством операций.

Логические выражения

Логические выражения строятся из логических данных, логических операций и отношений. В операциях отношения могут участвовать арифметические и логические выражения, а также символьные данные. Результатом логического выражения является значение true или false.

Определите результат логического выражения?

Пример 2

(a>3) and (b=a+b) or (c=4) при a=2,b=8,c=5.

Ответ: false.

Пример 3

a>3 and b=a+b or c=4 при a=2,b=8,c=5.

Замечание. В процессе компиляции будет выдано сообщение об ошибке, т.к. согласно приоритету раньше должно вычиститься выражение 3 and b, операнды которого не являются логическими. Правильная запись выражения приведена в примере 2.

Стандартные функции

Правила записи стандартных функций

1. Имя функции записывается латинскими буквами.

2. Аргумент функции записывается в круглых скобках после имени функции.

3. Аргументом функции может быть константа, переменная или выражение соответствующего типа.

ЗАМЕЧАНИЯ.

1) В тригонометрических функциях синус и косинус аргумент может быть задан только в радианной мере.

2) В языке Паскаль нет операции возведения в степень. При необходимости ее использования применяют стандартные функции. Например, ax = exp(x*ln(a)), при a>0

Арифметические функции

Некоторые команды текстового редактора.

Передвижение курсора

Реализация

На символ влево ¬

На символ вправо ®

На строку вверх ­

На строку вниз ¯

На страницу вверх PgUp

На страницу вниз PgDn

Команды удаления и вставки

Реализация

Включение/выключение режима вставки Ins

Удалить символ слева от курсора Backspace

Удалить символ в позиции курсора Del

Вставить строку Ctrl+N

Удалить строку Ctrl+Y

Другие команды редактора.

Реализация

Идти к полосе меню F10

Новый файл File/New

Открыть файл File/Open (F3)

Печатать файл File/Print

Выход из интегрированной среды File/Quit (Alt+X)

Вернуться в редактор из меню Esc

Сохранить File/Save (F2)

Исполнить программу Ctrl+F9

Команды работы с блоками.

Реализация

Отметить блок Shift <-,>,­,¯

Скопировать отмеченный блок в буфер Ctrl+Insert

Переместить отмеченный блок в буфер Shift+Delete

Некоторые специальные символы.

Лабораторная работа №1.

Цели.

Ознакомиться с интегрированной средой программирования TurboPascal 7.0.

Научиться записывать арифметические и логические выражения на языке Паскаль.

Научиться использовать простейшие операторы ввода-вывода.

Научиться создавать простейшие программы на языке программирования Паскале.

Научиться различным способам компиляции исходных текстов программ и созданию исполняемых файлов программ.

Освоить простейшие приемы отладки программы (пошаговое исполнение, тестирование).

Научиться использовать справочную систему.

Задание 1

Пользуясь командами текстового редактора, наберите текст программы и исполнить ее (Ctrl+F9). Просмотрите результаты работы программы в окне Output.

Begin

Write 'Привет!';

Write 'Мой друг.'

End.

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

Begin

Writeln 'Привет!';

Writeln 'Мой друг.'

End.

Выполните программу и объясните, что изменилось в напечатанном на экране тексте. Исполнить программу по шагам…(F7)

Задание 2

a. Используя возможности текстового редактора интегрированной среды, создайте текст программы

var
a,b,c: real;
begin
a:=10; b:=1,5; c:=2*a+b;
a:=b+c; c:=c+a+b;
write('a=',a,'b=',b,'c=', c);
end.

b. Сохраните текст программы в файле myprgrm. Исполните программу, не выходя из среды. Просмотрите результаты работы программы в окне Output.

c. Исполните программу по шагам, прослеживая изменение значений переменных с помощью окна Debug/Watch.

d. Скопируйте текст программы в другое окно. Измените текст программы так, чтобы каждое сообщение на экране монитора начиналось с новой строки и программа могла быть исполнена для любых значений a и b.

e. Измените оператор вывода так, чтобы на экране отображалось заданное количество цифр целой и дробной частей.

f. Откомпилируйте текст программы, сохраните файл с откомпилированной программой на внешнем носителе, выйдите из среды программирования, запустите программу на выполнение.

Задание 3

1. Создайте программу для вычисления значения y.

ü Использовать операторы вывода, позволяющие отображать указанное количество цифр в целой и дробной части.

ü Присваивание числовых значений параметрам оформите в разделе констант.

ü Правильность работы программы проверьте с помощью калькулятора.

ü Выполните программу по шагам, в отчете по лабораторной работе оформить протокол выполнения программы.

ü Оформить отчет по лабораторной работе (текст программы, результаты тестов на калькуляторе, протокол исполнения программы).

ü Откомпилируйте текст программы и сохраните откомпилированный файл на внешнем носителе.

1. Вариант

Вычислите ,где ; a=2,3; b=-4.

Ответ: 0,197946.

2. Вариант

Вычислите y=x3sin½x½,где ; a=2,8; b=0,75.

Ответ:3,020696.

3. Вариант

Вычислите , где ; a=-7,25; b=2,05.

Ответ:0,235307.

4. Вариант

Вычислите , где ; a=2,8.

Ответ:-0,104535.

5. Вариант

Вычислите , где ; a=2,8; b=0,25.

Ответ:0,1777797.

6. Вариант

Вычислите , где ; a=4,2; b=-1,3.

Ответ:8,044995.

7. Вариант

Вычислите , где ; k=7,4; n=-2,5.

Ответ:0,2786267.

8. Вариант

Вычислите , где ; a=2,5; b=-4,01.

Ответ: 12,60745.

9. Вариант

Вычислите , где ; a=-4,8; b=2,3.

Ответ:1,624717.

10. Вариант.

Вычислите , где b=2tg2a; a=3,7.

Ответ:8,004149.

11. Вариант.

Вычислите , где ; x=-2,9; k=4,5.

Ответ:0,6662106.

12. Вариант.

числите , где ; a=2,8; b=9,4.

Ответ:0,2494776.

13. Вариант.

Вычислите , где ; a=-1,2; b=5.

Ответ: -0.20410805.

14. Вариант.

Вычислите , где ; a=-2,8; b=0,66.

Ответ: -0.58655797.

15. Вариант.

Вычислите , где ; a=-7,25; b=0.008.

Ответ: 0.03249934.

16. Вариант.

Вычислите , где ; a=2,8.

Ответ: -9.51407908.

17. Вариант.

Вычислите , где ; a=1,4; b=3,4.

Ответ: 99,1108985.

18. Вариант.

Вычислите , где ; a=-3,5.

Ответ: 140,739147.

19. Вариант.

Вычислите , где ; с=7,4; d=-2,5.

Ответ: 1,248736.

20. Вариант.

Вычислите , где ; n=2,8.

Ответ: 0,8548033.

21. Вариант.

Вычислите где ; s=2.5.

Ответ: -0,3531064.

 

22. Вариант.

Вычислите , где ; a=; b=.

Ответ: -82,4608189.

23. Вариант.

Вычислите , где ; x=-0,9.

Ответ: 0,1342771.

24. Вариант.

Вычислите , где ; d=-2,8; f=1,4.

Ответ: 1,7046829.

25. Вариант.

Вычислите , где ; d=-5,6; f=2,75.

Ответ: 0,095436.

 

2.Напишите программу для решения следующей задачи.

1. Вaриант

Дано: D ABC; ÐA=580; ÐB=280 ; AC=15,8см.

Найти: BC-? ;S -?

Написать программу для вычисления длины стороны и площади произвольного треугольника, если известны сторона и два угла.

2. Вариант

Дано: DABC; AB=16,5см; BC=15см; ÐA=400

Найти: AC-?; S -?

Написать программу для вычисления длины стороны и площади произвольного треугольника, если известны сторона и два угла.

3. Вариант

Дано: окружность; R=5,6см.

Найти:C-?, S-?.

Написать программу для вычисления длины окружности произвольного радиуса и площади соответствующего круга.

Ответ:C=35,168, S=98,47.

4. Вариант

Дано: точки A(3,4;5,8), B(2,3;4,5).

Найти: расстояние AB.

Написать программу для вычисления расстояния между произвольными точками на плоскости

Ответ: AB=1,703.

5. Вариант.

Дано: DABC, ÐA=900 , AB=7,4см, AC=0,81дм.

Найти: BC-?, S-?, B-?, C-?.

Написать программу для вычисления гипотенузы, острых углов и площади произвольного прямоугольного треугольника.

Ответ: BC=10,971, S=29,97, B=0,831, C=0,740.

6. Вариант.

Дано: D ABC, ÐA=600 ,AB=8,4см, AC=1,2дм.

Найти:AC-?, P-?, S-?.

Написать программу для вычисления периметра и площади треугольника, у которого известны две стороны и угол между ними.

Ответ: AC=10,661, P=31,061, S=43,640.

7. Вариант.

Дано: ABCD-параллелограмм, ÐA=40 , AB=15,2см, AD=12,3см.

Найти:S-?, AC-?, BD-?.

Написать программу для вычисления площади и диагоналей параллелограмма, у которого известны стороны и угол.

Ответ: S=120,157, AC=25,86, BD=9,793.

8. Вариант

Дано: ABCD-ромб, AC=8см, BD=0,62дм.

Найти:S-?, AB-?, ÐA-?, ÐB-?.

Написать программу для вычисления стороны, углов и площади ромба, у которого известны диагонали.

Ответ: S=24,8, AB=5,06, A=1,319, B=1,823.

9. Вариант**.

Дано: правильный шестиугольник, a=4,5см.

Найти: S-?, S1 вписанного круга-?, S2 описанного круга-?.

Написать программу для вычисления площадей правильного шестиугольника и вписанного и описанного кругов.

Ответ: S=52,63, S1=47,76, S2=63,585.

10. Вариант**.

Дано:DABC, A(3,3;6,7), B(5,2;6,5), C(4,2;8,5).

Найти: cosA-?, cosB-?, cosC-?, R-?.

Написать программу для вычисления углов и радиуса описанной окружности треугольника, у которого известны координаты его вершин.

Ответ: cosA=0,351, cosB=0,539, cosC=0,6, R=1,192.

11. Вариант**.

Дано: DABC, AB=5,2см, BC=0,35дм, AC=6,1см.

Найти:S-?, R-?, r-?.

Написать программу для вычисления площади, радиусов вписанной и описанной окружности треугольника, если известны его стороны.

Ответ: S=9,085, R=3,055, r=1,228.

12. Вариант.

Дано: ABCD-параллелограмм, ÐС=300 , СB=10 см, СD=21,5 см.

Найти: S, AC, BD.

Написать программу для вычисления площади и диагоналей параллелограмма, у которого известны стороны и угол.

Ответ: S=107,5 см2, BD=13,78 см, AC=30,57 cм.

13. Вариант.

Дано: точки A(-1,2;10,8), B(3,8;-5,5).

Найти: расстояние AB.

Написать программу для вычисления расстояния между произвольными точками на плоскости.

Ответ: AB=7,286.

14. Вариант.

Дано: DABC, A(2,8;-1,2), B(3,8;-2,4), C(1,5;4,3).

Найти: P, S.

Написать программу для вычисления периметра и площади треугольника, у которого известны координаты его вершин.

Ответ: P=14,297, S=1,97.

15. Вариант.

Дано: DABC, AB=0,5 дм, BC=8,1см, AC=7,2 см.

Найти: S, R, r.

Написать программу для вычисления площади, радиусов вписанной и описанной окружности треугольника, если известны его стороны.

Ответ: S=17,78 см2, R=4,1 см, r=1,752 см.

16. Вариант.

Дано: DABC, ÐС=900 , СB=8,4 см, AC=0,63 дм.

Найти: BА, S, ÐА, ÐC.

Написать программу для вычисления гипотенузы, острых углов и площади произвольного прямоугольного треугольника.

Ответ: BА=10,5, S=26,46, ÐА=0,644, ÐC=0,927.

17. Вариант.

Дано: D ABC; ÐA=250; ÐС=560 ; AВ=14,3см.

Найти: BC; S; ÐB.

Написать программу для вычисления неизвестного угла, длины стороны и площади произвольного треугольника, если известны сторона и два угла.

Ответ: ÐB =990; S=51,482 см2, ВС=7,29 см.

18. Вариант.

Дано: ABCD-ромб, AC=7см, BD=0,84дм.

Найти: S, AB, ÐA, ÐB.

Написать программу для вычисления стороны, углов и площади ромба, у которого известны диагонали.

Ответ: S=29,4 см2, AB=5,467см, ÐA=1,752, ÐB=1,39.

19. Вариант.

Дано: правильный шестиугольник, a=3,2 см.

Найти: S, S1 вписанного круга, S2 описанного круга.

Написать программу для вычисления площадей правильного шестиугольника и вписанного и описанного кругов.

Ответ: S=26,604 см2, S1=24,123 см2, S2=32,17 см2.

20. Вариант.

Дано: D ABC, ÐA=300 ,AB=6,8 см, AC=0,94 дм.

Найти:AC, P, S.

Написать программу для вычисления периметра и площади треугольника, у которого известны две стороны и угол между ними.

Ответ: AC=4,887 см, P=21,087 см, S=15,98 см2.

21. Вариант.

Дано:DABC, A(-3,4;5,3), B(2,2;-4,5), C(2,8;7,3).

Найти: cosA, cosB, cosC, R.

Написать программу для вычисления углов и радиуса описанной окружности треугольника, у которого известны координаты его вершин.

Ответ: cosA=0,206, cosB=0,842, cosC=0,355, R=6,037 см.

22. Вариант.

Дано: DABC; AB=12,1 см; BC=19 см; ÐA=500

Найти: AC; S

Написать программу для вычисления длины стороны и площади произвольного треугольника, если известны сторона и два угла.

Ответ: АС=11,541 см, S=49,092 см2.

23. Вариант.

Дано: окружность R=4,8 см.

Найти: C, S.

Написать программу для вычисления длины окружности произвольного радиуса и площади соответствующего круга.

Ответ:C=30,159 см, S=72,382 см2.

24. Вариант.

Вычислите дробную часть среднего арифметического и дробную часть среднего геометрического трех заданных чисел a,b,c.

Ответ: при a=2, b=5, c=7 результат 0,667 и 0,367.

25. Вариант.

Поменяйте местами значения двух вещественных переменных x, y. Приведите два варианта решения задачи (с использованием вспомогательной переменной и без нее)

 

Вариант0

Вычислите , где ; x=2,8.

Ответ:0,3535534.

{Лабораторная работа №1 задача 1}

 

Program LabRab1_1;

Const x = 2.8;

var

a,y : real;

Begin

a := abs(sin(x));

y := sqrt(cos(a)+ 1) / 4;

writeln('y=',y :10:8);

Readln;

End.

 

Дано: треугольник ABC, A(2,3;3,7), B(5,8;6,2), C(4,5;8,3).

Найти:P-?, S-?.

Написать программу для вычисления периметра и площади треугольника, у которого известны координаты его вершин.

Ответ: P=11,869, S=5,297.

 

{Лабораторная работа №1 задача 2}

 

Program LabRab12;

var

xA,yA, xB, yB, xC,yC : real;

AB, BC, AC, P, S : real;

Begin

Writeln('Введите координаты точки A(x,y) ');

Readln(xA, yA);

Writeln('Введите координаты точки B(x,y) ');

Readln(xB, yB);

Writeln('Введите координаты точки C(x,y) ');

Readln(xC, yC);

{ Вычислим длины сторон, как расстояние между точками}

AB := sqrt(sqr(xA - xB) + sqr(yA - yB));

BC := sqrt(sqr(xC - xB) + sqr(yC - yB));

AC := sqrt(sqr(xA - xC) + sqr(yA - yC));

P := AB + BC + AC;

S := 1 / 2 * abs((xA - xC) * (yB - yC) - (xB - xC) * (yA - yC) );

{или по формуле Герона}

{S := sqrt(P/2 * (P/2 - AB) * (P/2 - BC) * (P/2 - AC));}

writeln('Периметр = ', P:5:3);

writeln('Площадь = ', S:5:3);

Readln;

End.

 

Тема 2. Процедуры и функции. Организация ветвлений

Турбо Паскаль позволяет выделять фрагменты программы во вспомогательные алгоритмы. Это позволяет писать хорошо структурированные программы. Языки… Подпрограмма - это последовательность операторов, которые определены и… Процедура и функция - это именованная последовательность описаний и операторов. При использовании процедур или функций…

Label

constОписание локальных меток,

typeконстант, типов и переменных

Var

procedureОписание внутренних процедур

functionи функций

Begin

Операторы

end;

Описание функции имеет следующую структуру:

Function Имя (Список формальных параметров) : Тип результата;

Label

const Описание локальных меток,

type констант, типов и переменных

Var

procedureОписание внутренних процедур

function и функций

Begin

Операторы, среди которых хотя бы один, который присваивает имени функции значение результата

End.

Типом результата в функциях может быть любой из стандартных типов Турбо Паскаля кроме файловых типов. Использование конструируемых типов здесь недопустимо.

Существуют понятия локальных и глобальных меток, констант, типов и переменных. Переменные, описанные в основной программе, являются глобальными по отношению к процедурам и функциям, которые описаны позже этих переменных. Аналогично, переменные, описанные в процедурах и функциях, являются глобальными по отношению к внутренним процедурам и функциям, которые описаны позже. Остальные переменные называются локальными. Их область действия локализована, т.е. ограничена, тем вспомогательным алгоритмом, где они описаны.

Исходные данные для работы вспомогательных алгоритмов можно передавать через глобальные переменные, а также через параметры. Параметры при вызове вспомогательных алгоритмов называются фактическими, а параметры в заголовке вспомогательных алгоритмов называются формальными.

Формальные параметры вспомогательных алгоритмов также относятся к его локальным переменным. Локальные данные создаются, т.е. им выделяется память, при вызове вспомогательные алгоритмы, а освобождение этой памяти происходит при завершении работы вспомогательные алгоритмы. В том случае, когда локальная переменная имеет тот же идентификатор, что и глобальная, алгоритм работает с локальной. При этом, значение глобальной переменной сохраняется в специальной области памяти, которая называется стек.

По способу передачи параметры в Турбо Паскале делятся на типы:

ü параметры-значения,

ü параметры-переменные,

ü параметры-константы.

Параметры-значения

При вызове процедур и функций формальным параметрам-значениям выделяется новое место в памяти и присваиваются значения фактических параметров. При этом на месте фактических параметров могут стоять выражения. Совместимость типов определяется возможностями присваивания. После выполнения подпрограммы место формальных параметров освобождается. Изменение формальных параметров не сказывается на значении фактических, т.е. «время жизни» таких параметров, как и других локальных переменных, ограничивается временем работы подпрограммы. Заголовок процедуры с параметрами-значениями имеет вид:

Procedure MyProc1(par1,par2 : type1; par3,par4 : type2);

Параметры-переменные

При вызове процедур и функций формальные параметры-переменные занимают то же самое место в памяти, что и соответствующие им фактические параметры. Таким образом, дополнительное место в памяти не выделяется и изменения формального параметра приводят к изменениям фактического. Параметры-переменные, как правило, используются для передачи результатов из процедур в вызывающий алгоритм.

Такой механизм передачи данных требует, чтобы фактические параметры были переменными, причем в точности того же типа, что и формальные параметры. При описании вспомогательные алгоритмы перед параметрами-переменными должно присутствовать слово var. Заголовок процедуры с параметрами-переменными имеет вид:

Procedure MyProc2(var par1,par2 : type1; var par3,par4 : type2);

Параметры-константы

Работа с формальными параметрами-константами внутри вспомогательных алгоритмов ведется как с обычными локальными константами. Только эти константы принимают значения выражений, которые находятся в фактических параметрах. Им не выделяется новая память как локальным переменным. Запрещается изменять их значения во время выполнения подпрограммы и контроль за этим осуществляется на уровне компилятора, как для обычных констант.

Использовать параметры-константы рекомендуется при передаче данных большого объема с гарантией сохранения их значений. Заголовок процедуры с параметрами-константами имеет вид:

Procedure MyProc3(const par1,par2 : type1; const par3,par4 : type2);

 

Разветвляющиеся алгоритмы

В тех случаях, когда последовательность действий зависит от выполнения или невыполнения некоторых условий, в алгоритмах используется ветвление.

Условный оператор

В Паскале для реализации конструкции ветвление используется условный оператор. Условный оператор IF реализует базовую конструкцию ветвление и позволяет изменить порядок выполнения команд в зависимости от некоторого логического условия, т.е. он осуществляет ветвление вычислительного процесса.

Условный оператор имеет вид:

IF <условие> THEN <оператор1> [ELSE <оператор2>];

В случае истинности логического выражения, стоящего в условии, выполняется <оператор1>, а <оператор2> пропускается. При ложном значении логического выражения пропускается <оператор1> и выполняется <оператор2>.

Оператор IF может быть полным (присутствуют обе ветви) или неполным (Else-ветви нет, при ложном условии ничего не делается). По правилам каждая из ветвей может содержать либо один выполняемый оператор, либо несколько, объединенных в составной. Точка с запятой перед Else является ошибкой.

Оператор выбора

Если в алгоритме предусмотрены не два возможных варианта выполнения программы, а больше, то может использоваться оператор выбора CASE. Структура этого оператора в Турбо Паскале:

CASE <ключ_выбора> OF

C1 : <оператор1>;

C2 : <оператор2>;

. . .

CN : <операторN>;

[ELSE <оператор0>;]

END;

Здесь <ключ_выбора> - это выражение порядкового типа, в зависимости от значения которого принимается решение; C1,...,CN - значения, с которыми сравнивается значение <ключа>; <оператор1>,..., <операторN> - оператор (возможно составные), из которых выполняется тот, с константой которого происходит первое совпадение значения <ключа>, <оператор0> выполнится, если значение ключа не совпадает ни с одной из констант C1,...,CN.

Ветвь Else не обязательна, и в отличие от оператора if, перед ней можно ставить точку с запятой. Если для нескольких значений <ключа> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница .. верхняя граница).

Оператор перехода

Кроме того в Турбо Паскале имеется другая возможность реализации нелинейного хода программы: с использованием оператора безусловного перехода.

Оператор перехода имеет вид:

GOTO <метка>.

Он позволяет передать управление непосредственно на нужный оператор программы. Перед этим оператором должна располагаться метка отделенная от него двоеточием. В Турбо Паскале в качестве меток выступают либо целые числа от 0 до 9999, либо идентификаторы. Все метки должны быть описаны в разделе объявления меток следующим образом:

label <список меток через запятую>;

Каждой меткой в программе может быть помечен только один оператор. Операторов перехода с одной и той же меткой можно писать любое количество. Необходимо, чтобы раздел описания метки, сама метка и оператор перехода с ее использованием располагались в пределах одного блока программы (см. тему процедуры и функции). Кроме того, нельзя передавать управление внутрь структурированных операторов (например, if, for, while, repeat и др.).

Замечание. Использование оператора Goto считается «плохим» стилем программирования, поэтому необходимо избегать его использования при написании программ.

Лабораторная работа №2

Цели. Научиться использовать в программах процедуры и функции.

Научиться использовать в программах операторы, реализующие структуру ветвление.

Научиться использовать логические операции.

Задание 1

1. Написать программу для нахождения значения y с использованием операторов IF …. Выражения для вычисления значения выражений оформить:

а) в виде процедуры;

б) в виде функции.

Оформить реализованный в программе алгоритм в виде блок-схемы.

Подготовить тесты для проверки правильности работы программы.

Исполнить программу по шагам (с заходом в процедуру и без захода в процедуру).

Оформить протокол исполнения программы (для одного из тестовых значения).

 

1. Вариант

Вычислить значение функции y для произвольного значений x .

2. Вариант

Вычислить значение функции y для произвольного значений x .

3. Вариант

Вычислить значение функции y для произвольного значений x .

4. Вариант

Вычислить значение функции y для произвольного значений x .

5. Вариант

Вычислить значение функции y для произвольного значений x .

6. Вариант

Вычислить значение функции y для произвольного значений x .

7. Вариант

Вычислить значение функции y для произвольного значений x .

???

8. Вариант

Вычислить значение функции y для произвольного значений x .

9. Вариант

Вычислить значение функции y для произвольного значений x .

10. Вариант

Вычислить значение функции y для произвольного значений x .

11. Вариант

Вычислить значение функции y для произвольного значений x .

12. Вариант

Вычислить значение функции y для произвольного значений x .

13. Вариант

Вычислить значение функции y для произвольного значений x .

14. Вариант

Вычислить значение функции y для произвольного значения x .

15. Вариант

Вычислить значение функции y для произвольного значения x .

16. Вариант

Вычислить значение функции y для произвольного значения x .

17. Вариант

Вычислить значение функции y для произвольного значения x .

18. Вариант

Вычислить значение функции y для произвольного значения x .

 

19. Вариант

Вычислить значение функции y для произвольного значения x .

20. Вариант

Вычислить значение функции y для произвольного значения x .

21. Вариант

Вычислить значение функции y для произвольного значения x .

22. Вариант

Вычислить значение функции y для произвольного значения x .

23. Вариант

Вычислить значение функции y для произвольного значения x .

24. Вариант

Вычислить значение функции y для произвольного значения x .

25. Вариант

Вычислить значение функции y для произвольного значения x .

 

2. Написать программу для вычисления y с использованием:

а) оператора if..;

б) оператора множественного ветвления.

 

1. Вариант

Вычислите для произвольного значения х.

2. Вариант

Вычислите для произвольного значения х.

3. Вариант

Вычислите для произвольного значения х.

4. Вариант

Вычислите для произвольного значения х.

5. Вариант

Вычислите для произвольного значения х.

6. Вариант

Вычислите для произвольного значения х.

7. Вариант

Вычислите для произвольного значения х.

8. Вариант

Вычислите для произвольного значения х.

9. Вариант

Вычислите для произвольного значения х.

 

10. Вариант

Вычислите для произвольного значения х.

11. Вариант

Вычислите для произвольного значения х.

12. Вариант

Вычислите для произвольного значения х.

13. Вариант

Вычислите для произвольного значения х.

 

14. Вариант

Вычислите для произвольного значения х.

15. Вариант

Вычислите для произвольного значения х.

16. Вариант

Вычислите для произвольного значения х.

17. Вариант

Вычислите для произвольного значения х.

18. Вариант

Вычислите для произвольного значения х.

19. Вариант

Вычислите для произвольного значения х.

20. Вариант

Вычислите для произвольного значения х.

21. Вариант

Вычислите для произвольного значения х.

22. Вариант

Вычислите для произвольного значения х.

23. Вариант

Вычислите для произвольного значения х.

24. Вариант

Вычислите для произвольного значения х.

25. Вариант

Вычислите для произвольного значения х.

Вариант0

Вычислить значение функции y для произвольного значения x .

{Лабораторная работа №2 задача 1(а)}

Блок _схема для решения задачи

 

 

Вспомогательные алгоритмы

 

 

Основная программа

 

Program Lab_Rab_2_1;

var

x,y : real;

 

function f1 (x : real) :real;

begin

f1 := ln(sqr(x) + 3);

end;

 

function f2 (x : real) :real;

begin

f2 := arctan(x);

end;

 

Begin

Write('Введите значение x= ');

Readln(x);

if (x > -2) and (x <= 2) then y := f1(x)

else y := f2(x);

Writeln('Значение функции y(',x:4:2,')= ',y:4:3);

ReadLn;

End.

 

{Лабораторная работа №2 задача 1(б)}

 

Program Lab_Rab_2_1;

var

x,y : real;

 

procedure f (x : real ; var y : real );

begin

if (x > -2) and (x <= 2) then y := ln(sqr(x) + 3)

else y := arctan(x);

end;

 

Begin

Write('Введите значение x= ');

Readln(x);

f(x,y);

Writeln('Значение функции y(',x:4:2,')= ',y:4:3);

ReadLn;

End.

{Лабораторная работа №2 задача 2(б)}

Program Lab_Rab_2_1;

var

x : real;

y : extended;

k : byte;

 

function f1 (x : real) : extended;

begin

f1 := ln(abs(sqr(x) * x));

end;

 

function f2 (x : real) : extended;

begin

f2 := sqrt(exp(x + 3));

end;

 

function f3 (x : real) : extended;

begin

f3 := exp(3/2 * ln(x));

end;

 

Begin

ClrScr;

Write('Введите значение x= ');

Readln(x);

if (x < -6.8) then k := 1

else if x < 5 then k := 2

else k := 3;

case k of

1 : y := f1(x);

2 : y := f2(x);

3 : y := f3(x);

end;

Writeln('Значение функции y(',x:4:2,')= ',y:4:3);

ReadLn;

End.

Тема 3. Организация циклов. Модули

Циклические алгоритмы

Турбо Паскаль позволяет использовать три различных оператора для организации повторяющихся последовательностей действий, которые называют циклами.

Циклы с условием.

В Паскале имеется два типа таких циклов. Циклы While называют циклами с предусловием. Они имеют вид

WHILE <логич.выражение> DO <оператор>;

Цикл While организует выполнение одного (возможно составного) оператора пока истинно логическое выражение, стоящее в заголовке цикла. Поскольку значение логического выражения проверяется в начале каждой итерации, то тело цикла может не выполниться ни разу. Таким образом, в этом цикле логическое выражение - это условие продолжения работы в цикле.

Другой вариант циклов с условием - это циклы Repeat. Их называют циклами с постусловием. Они имеют вид

REPEAT

<оператор 1>

...

<оператор N>

UNTIL <логич.выражение>

Оператор Repeat организует повторяющееся выполнение нескольких операторов до тех пор пока не станет истинным условие, стоящее в Until-части. Тело цикла обязательно выполняется хотя бы один раз. Таким образом, в этом цикле логическое выражение - это условие выхода из цикла.

При создании циклических алгоритмов Турбо Паскаль позволяет использовать процедуры Continue и Break. Процедура Continue досрочно завершает очередной шаг цикла, передает управление на заголовок. Процедура Break реализует немедленный выход из цикла.

РЕКОМЕНДАЦИИ: Для того, чтобы избежать зацикливания программы необходимо обеспечить изменение на каждом шаге цикла значения хотя бы одной переменной, входящей в условие цикла. После выхода из цикла со сложным условием (с использованием операций and, or, xor) как правило необходима проверка того, по какому условию цикл завершен.

Циклы с параметром.

Оператор цикла For организует выполнение одного оператора заранее определенное число раз. Его еще называют цикл со счетчиком. Существует две формы… FOR <параметр> := <nz> TO <kz> DO <оператор>; FOR <параметр> := <nz> DOWNTO <kz> DO <оператор>;

Создание модулей в Turbo Pascal

В основе идеи модульности лежат принципы структурного программирования. Существуют стандартные модули Turbo Pascal, которые обычно описываются в… Модуль имеет следующую структуру: Unit <имя модуля>; {заголовок… После служебного слова Unit записывается имя модуля, которое должно совпадать с именем файла, содержащего данный…

Лабораторная работа №3

Цели. Научиться использовать в программах операторы, реализующие структуру цикл. Закрепить умение использовать в программах процедуры и функции. Научиться оформлять и использовать модули.

 

Задание 1

Алгоритм решения задач записать с помощью блок-схемы.

Написать программы, используя различные виды циклов.

Оттестировать программы.

Задачу п. а) выполнить по шагам, протокол исполнения оформить в отчете лабораторной работы.

 

1. Вариант

Вычислить:

a) сумму первых N нечетных натуральных чисел;

b) произведение первых N нечетных натуральных чисел;

c) сумму первых нечетных натуральных чисел, не превосходящих N;

d) произведение первых нечетных натуральных чисел, не превосходящих N.

2. Вариант

Вычислить:

a) сумму первых N четных натуральных чисел;

b) произведение первых N четных натуральных чисел;

c) сумму первых четных натуральных чисел, не превосходящих N;

d) произведение первых четных натуральных чисел, не превосходящих N.

3. Вариант

Вычислить:

a) сумму первых N натуральных чисел, делящихся на К;

b) произведение первых N натуральных чисел, делящихся на К;

c) сумму первых делящихся на К натуральных чисел, не превосходящих N;

d) произведение первых делящихся на К натуральных чисел, не превосходящих N.

4. Вариант

Вычислить:

a) сумму первых N членов произвольной арифметической прогрессии;

b) произведение первых N членов произвольной арифметической прогрессии;

c) сумму первых членов произвольной арифметической прогрессии, не превосходящих N;

d) произведение первых членов произвольной арифметической прогрессии, не превосходящих N.

5. Вариант

Вычислить:

a) сумму первых N членов произвольной геометрической прогрессии;

b) произведение первых N членов произвольной геометрической прогрессии;

c) сумму первых членов произвольной геометрической прогрессии, не превосходящих N;

d) произведение первых членов произвольной геометрической прогрессии, не превосходящих N.

6. Вариант

Составить программу, распечатывающую на экране компьютера:

a) результаты умножения на число N первых K натуральных чисел;

b) результаты умножения на число N первых натуральных чисел, не превосходящие K;

c) сумму результатов умножения на число 4 первых 9 натуральных чисел;

d) сумму результатов умножения на число 4 первых натуральных чисел, не превосходящих 9.

7. Вариант

Вычислить:

a) сумму N первых натуральных чисел;

b) произведение N первых натуральных чисел;

c) сумму тех первых натуральных чисел, для которых она не превосходит N;

d) произведение тех первых натуральных чисел, для которых оно не превосходит N.

8. Вариант

Вычислить: КN , не используя операцию возведения в степень;

a) сумму N степеней числа К, не используя операцию возведения в степень;

b) степень числа К, не используя операцию возведения в степень, пока результат не превосходит N;

c) сумму степеней числа К, не используя операцию возведения в степень, пока она не превосходит N.

9. Вариант*

Вычислить:

а) (1+sin0.1)(1+sin0.2)...(1+sin10);

б) (1+sin0.1)(1+sin0.2)(1+sin0.3)...., пока произведение остается меньше заданного N.

10. Вариант *

Вычислить:

а) (х-2)(х-4)(х-6)...(х-64);

б) (х-2)(х-4)(х-6)..., пока произведение остается меньше заданного N.

11. Вариант *

Вычислить:

а) 21 +22 +...+2N;

б 21 +22 +...+2N пока сумма остается меньше заданного N.

12. Вариант

Вычислить:

а) -12+22 –32 +42+...+Mn;

б) -12+22 –32 +42+...+Mn, пока сумма остается меньше заданного N.

13. Вариант*

Вычислить:

а) sin x +sinx 2 +sin x 3 + ...+sinх N ;

б) sin x +sinx 2 +sin x 3 + ...+sinх N..., пока сумма остается меньше заданного N.

14. Вариант

Последовательность задана формулой общего члена n2*(n +3n).

Вычислить:

а) сумму членов последовательности с M-го по K;

б) произведение членов последовательности с M-го по K;

в) сумму членов последовательности, пока она не превосходит заданного N;

г) произведение членов последовательности пока оно не превосходит заданного N.

15. Вариант

Вычислить:

а) ;

б) , пока сумма остается меньше заданного N.

 

 

16. Вариант

Последовательность задана формулой общего члена (n2 – n+2)n.

Вычислить:

а) сумму членов последовательности с M-го по K;

б) произведение членов последовательности с M-го по K;

в) сумму членов последовательности, пока она не превосходит заданного N;

г) произведение членов последовательности пока оно не превосходит заданного N.

17. Вариант

Вычислить:

a) сумму натуральных чисел, начиная c N до 50;

b) произведение натуральных чисел, начиная с N до 50;

c) сумму натуральных чисел, начиная с N до тех пор, пока она не превосходит 50;

d) произведение натуральных чисел, начиная c N до тех пор, пока оно не превосходит 50.

18. Вариант

Пусть , , где задано.

Найдите сумму всех положительных чисел .

19. Вариант

Пусть дано натуральное число и вещественное число . Среди чисел:

, где ,

найдите ближайшее к какому-нибудь целому числу.

20. Вариант *

Вычислить: sin x + sin sinx + sin sin sinx +...+sin sin sin…sinх, пока сумма остается меньше заданного N.

21. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

 

 

22. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

23. Вариант *

Пусть дано натуральное число и вещественное число . Вычислите:

.

24. Вариант

Пусть дано натуральное число . Вычислите значения выражений:

;

25. Вариант

Пусть дано натуральное число . Вычислите значения выражений:

.

 

Задание 2

1.Напечатать значения функции y (см. лр №2, задание1, п1) на интервале [a,b] с шагом h. Вычисление значения функции y оформить в виде функции, используемые функции и процедуры оформить в виде модуля.

2. Для заданной функции f(x) методом табулирования локализовать корни уравнения f(x)=0 (т.е. выделить по возможности наименьшие отрезки, содержащие по одному корню) и найти приближенные значения корней. Если корней бесконечно много, взять два-три корня, ближайшие к началу координат.

 

Построить график функции на исследуемом участке (в тетради). За приближенное значение корня принимается середина соответствующего отрезка.

 

 

вариант 1. вариант 2. вариант 3.
Ответ:[0,5;0,6] Ответ:[0,7;0,8] Ответ:[1,3;1,4]
вариант 4. вариант 5. вариант 6.
Ответ:[2,5;2,6] Ответ:[3,8;3,9] Ответ:[0,8;0,9]
  [7,5;7,6]  
вариант 7. вариант 8. вариант 9.
Ответ:[1,8;1,9] Ответ:[0,2;0,3] Ответ:[1,4;1,5]
[1,7;1,8]    
вариант 10. вариант 11. вариант 12.
1 1xsinx-1. 1tg2x-3.
Ответ:[0,8;0,9] Ответ:[1,1;1,2] Ответ:[0,6;0,65]
  [2,6;2,7] [0,75;0,8]
вариант 13. вариант 14. вариант 15.
11,7-2cos2x. 12ctg3x+1. 1sin4x-0,6.
Ответ:[0,2;0,3] Ответ:[0,6;0,7] Ответ:[0,1;0,2]
[2,7;2,8] [1,0;1,1] [0,6;0,7]
вариант 16. вариант 17. вариант 18.
1ex -x-4. 1x -sinx. 1xlnx-0,5.
Ответ:[1,7;1,8] Ответ:[-1;-0,9] Ответ:[1,4;1,5]
  [0,9;1]  
вариант 19. вариант 20. вариант 21.
1e-x -sinx. 2ex -4x. 2x-10sinx.
Ответ:[0,5;0,6] Ответ:[0,3;0,4] Ответ:[2,7;2,8]
[3;3,1] [2,1;2,2]  
вариант 22. вариант 23. вариант 24.
2x-cosx-1. 2lnx+x . 2ex -10x.
Ответ:[1,2;1,3] Ответ:[0,6;0,7] Ответ:[0,1;0,2]
вариант 25.
2lnx-2+x.
Ответ:[1,5;1,6]

Задание 3

2. Написать программу и доказать правильность ее работы.

1. Вариант

Вычислить приближенно площадь фигуры, ограниченной осью абсцисс, аркой синусоиды, на отрезке [A,B] и прямыми y=А, y=B, разделив отрезок от A до B на N частей и суммируя площади прямоугольников с основаниями (A-B)/N и высотой, равной значению sin на правой границе каждого интервала. Вычисления выполнить и для N*2, N* Результат сравнить с точным значением.

2. Вариант

Вычислить приближенно площадь фигуры, ограниченной осью абсцисс, аркой косинусоиды, на отрезке [A,B] и прямыми y=А,y=B, разделив отрезок от A до B на N частей и суммируя площади прямоугольников с основаниями (A-B)/N и высотой, равной значению sin на левой границе каждого интервала. Вычисления выполнить и для N*2 и N* Результаты сравнить с точным значением.

3. Вариант

Вычислить приближенно площадь фигуры, ограниченной функцией y=x¤ и прямой y=25, разбивая отрезок изменения x на 10 частей и суммируя площади прямоугольников с основанием, равным 1/10 отрезка изменения x, и высотой, определяемой значением функции в середине основания для x<=0 и на левом конце основания для x>

4. Вариант

Вычислить приближенно площадь фигуры, ограниченной функцией y=x2 и прямой y=5+x/2, разбивая отрезок изменения x на 12 равных частей и суммируя площади прямоугольников с основанием, равным 1/12 отрезка изменения x, и высотой, определяемой значением функции в середине основания для x<0 и на правом конце интервала для x>=

5. Вариант

Начав тренировки, спортсмен в первый день пробежал L км. Каждый следующий день он увеличивал дневную норму на n% от нормы предыдущего дня в первые 5-ть дней тренировки и на k% в остальные дни. Через сколько дней суммарный путь, который пробежал спортсмен, будет превосходить 100км?

6. Вариант

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через N часов.

7. Вариант

Составить программу для нахождения корня уравнения 2x-2=0 с заданной точностью е методом половинного деления.

8. Вариант

Имеются 10 концентрических окружностей с центром в точке (a,b) радиусов 2,7,12,... . Составить программу, определяющую, принадлежит ли заданная точка хотя бы одному из имеющихся колец, если да определить номер кольца.

9. Вариант

На картинке изображен забор из 10 досок, размером 2*10дм. Левый нижний угол первой доски имеет координаты (a,b). Составить программу, определяющую, попадет ли заданная точка на одну из досок забора, если да, найти номер доски.

10. Вариант

Около стены наклонно стоит палка длиной x. Один ее конец находится на расстоянии y от стены. Напечатать таблицу значений угла A между палкой и полом для значений x, изменяющихся от 4м до 5м с шагом 0,01м и y, изменяющийся от 2м с шагом h м до тех пор, пока значение y остается меньше значения x.

11. Вариант

Определить, сколькими способами можно набрать сумму в N копеек, если использовать монеты достоинством 5,3 копейки. В каждом наборе должно быть не менее 1 монеты каждого достоинства.

12. Вариант

Предприниматель, начав дело, взял кредит размером k рублей под р процентов годовых и вложил его в свое дело. По прогнозам, его дело должно давать прибыль рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и если! да, то через сколько лет?

13. Вариант

У гусей и кроликов вместелап. Сколько может быть гусей и кроликов (вывести все возможные сочетания)?

14. Вариант

Проверить численно первый замечательный предел , задав значения до тех пор, пока левая часть равенства не будет отличаться от правой менее чем на заданную погрешность .

15. Вариант

Проверить численно второй замечательный предел , задав значения . При каком исследуемое выражение отличается от менее чем на заданную погрешность .

16. Вариант

Билет называют «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех цифр. Подсчитайте число тех «счастливых» билетов, у которых сумма первых трех цифр равна 1

17. Вариант

Пусть дано натуральное число . Выбросите из записи этого числа цифры 3 и 7, оставив прежним порядок остальных цифр. Например, из числа 3 171 507 377 должно получиться 115

18. Вариант

Числа последовательно поступают с устройства ввода. Все числа хранить в памяти нет необходимости; после ввода каждого числа нужно вычислить и напечатать среднее значение всех введенных чисел: .

19. Вариант

В учебном заведении задается начало учебного дня, продолжительность пары, продолжительность обычного и большого перерывов (и их «место» в расписании), количество пар. Получить расписание звонков на весь учебный день.

20. Вариант

Леспромхоз ведет заготовку деловой древесины. Первоначальный объем ее на территории леспромхоза составлял кубометров. Ежегодный прирост составляет %. Годовой план заготовки - кубометров. Через сколько лет в бывшем лесу будут расти одни опята?

21. Вариант

Численно убедиться, является ли заданная функция четной или нечетной на заданном отрезка . Учесть погрешность вычислений и возможные точки разрыва функции. Проверить, например, для функций: , , , вычисляя их на отрезке [-5;5] с шагом 0,5

22. Вариант

Утверждается, что функция периодическая с периодом . Проверить это численно, вычислив функцию с постоянным шагом на отрезке [0;5Т]. Учесть погрешность вычислений и возможные точки разрыва функций. Проверить на примере функций: , , .

23. Вариант

Составьте программу определения наименьшего общего кратного N натуральных чисел.

24. Вариант

В старояпонском календаре был принят 60летний цикл, состоявший из пяти 12 летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984г. – год зеленой крысы – был началом очередного цикла.) Напишите программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.

25. Вариант

Составьте программу, которая выводит полную запись десятичного числа 42*4*, в которой пропущены две цифры, если известно, что данное число кратно 72

Вариант0

1.Вычислить:

a) сумму натуральных чисел, начиная от 12 до N;

b) произведение натуральных чисел, начиная от 12 до N;

c) сумму натуральных чисел, начиная от 12 до тех пор, пока она не превосходит N;

d) произведение натуральных чисел, начиная от 12 до тех пор, пока оно не превосходит N.

{Лабораторная работа №3 задача 1}

Блок – схема задача 1(a) Блок – схема задача 1(c,d)

( цикл for) ( цикл , while, repeat)

-
-
-
-

 

Program Lab_Rab_3_1;

Uses Crt;

Const k = 12;

var

N, i : integer;

S, P : LongInt;

Begin

ClrScr;

Write('Введите значение N= ');

Readln(N);

 

{ Реализация задачи 1(a)}}

S := 0;

for i := k to N do inc(S,i);

Writeln('Сумма чисел = ',S);

 

{ Реализация задачи 1(б)}}

P := 1;

for i := k to N do P := P * i;

Writeln('Произведение чисел = ',P);

 

{ Реализация задачи 1(c)}}

S := k; i := k;

While S + i <= N do

begin

inc(i);

S := S + i;

end;

Writeln('Сумма чисел = ',S);

 

{ Реализация задачи 1(d)}}

P := 1; i := k;

repeat

P := P * i;

inc(i);

until P * i > N ;

Writeln('Произведение чисел = ',P);

ReadKey;

End.

 

 

{Лабораторная работа №3 задача 2(а)}

{Модуль в котором реализована функция y}

 

Unit Func;

 

Interface

function f (x : real ) : extended;

 

Implementation

function f1 (x : real) : extended;

begin

f1 := ln(abs(sqr(x) * x));

end;

 

function f2 (x : real) : extended;

begin

f2 := sqrt(exp(x + 3));

end;

 

function f3 (x : real) : extended;

begin

f3 := exp(3/2 * ln(x));

end;

 

function f ;

begin

if (x < -6.8) then f := f1(x)

else if x < 5 then f := f2(x)

else f := f3(x);

end;

END.

 

Program Lab_Rab_3_2;

Uses Crt , Func;

var

a,b,h,x : real;

Begin

ClrScr;

WriteLn('Введите границы интервала табулирования [a;b]');

Write('a=');

Readln(a);

Write('b=');

Readln(b);

WriteLn('Введите шаг табулирования ');

Write('h=');

Readln(h);

Writeln('| x | y(x) |');

Writeln('__________________________');

x := a;

While x <= b do

begin

writeln('|', x:6:2,' | ', f(x):6:3,' |');

x := x + h;

end;

Writeln('__________________________');

ReadKey;

End.

 

 

{Лабораторная работа №3 задача 2(б)}

Program Lab_Rab_3_2;

Uses Crt ;

Const E = 0.001;

var

a,b,x,_x : real;

fl : boolean;

function f (x : real) :real;

begin

f := 2 * sqrt(x) - sin(0.5 * x) – 3;

end;

 

Begin

ClrScr;

Repeat В данном фрагменте программы цикл

fl := True; оформлен для проверки корректности вво

WriteLn('Введите [a;b]'); да данных.

Write('a='); Возможен более простой вариант:

Readln(a); WriteLn('Введите границы интервала [a;b]')

Write('b='); Write('a=');

Readln(b); Readln(a);

if (a < 0) or ( a >= b) then Write('b=');

begin Readln(b);

writeln('Повторите ввод!');

fl := false;

end;

until fl;

WriteLn('Локализованные корни ');

Writeln('| x | y(x) |');

Writeln('__________________________');

_x := a; x := _x + E;

While x <= b do

begin

if f(_x) * f(x) <= 0 then

writeln('|', ( x + _x) / 2 :6:2,' | ', f(( x + _x) / 2):6:3,' |');

_x := x ;

x := _x + E;

end;

Writeln('__________________________');

ReadKey;

End.

 

{Лабораторная работа №3 задача3}

Ивана Александровича Хлестакова пригласили управлять департаментом. В первый день ему прислали 100 курьеров, а в каждый последующий в течении рабочей недели (5 дней)-в 2,а затем в 3 раза больше, чем в предыдущий. Иван Александрович согласился тогда, когда к нему прибыло сразу 30000 курьеров. На какой день Хлестаков согласился управлять департаментом?

{Лабораторная работа №3 задача 3}

Program Lab_Rab_3_3;

Uses Crt ;

Const N = 30000;

m : LongInt = 100 ; {текущее количество новых курьеров}

var

K : integer ; {количество дней}

S : LongInt ; {общее текущее количество курьеров}

 

Begin

ClrScr;

WriteLn(' График ');

Writeln('| день | новых курьеров | всего |');

Writeln('_________________________________________');

K := 1 ; S := m;

writeln('| ', K :5,' | ', m : 8, ' | ', S:6,' |');

repeat

inc(K);

if K <= 5 then m := m * 2 else m := m * 3;

S := S + m;

writeln('| ', K :5,' | ', m : 8, ' | ', S:6,' |');

until m > N;

Writeln('_________________________________________');

Writeln('Хлестаков согласился на ', k, ' день');

ReadKey;

End.

 

Тема 4. Массивы

Вся совокупность компонент определяется одним именем. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом…   A[5] S[k+1] B[3,5].

Begin

read(A[-1,'a',3]);

read(A[1]['x'][0]);

A[1]['c',1]:=100;

end.

Глубина вложенности, т.е. количество индексов, при определении массивов не ограничена. Играет роль только суммарный объем данных в программе. В стандартном режиме работы Турбо Паскаля этот объем ограничен размерами сегмента, т.е. 64 килобайта. Целиком над массивами допускается применение только операции присваивания массивов (подмассивов) одинаковых типов. Остальные операции должны выполняться поэлементно.

Сортировка массивов

Сортировка обменом (методом "пузырька") Идея метода заключается в том, что последовательно сравниваются пары соседних… ПРИМЕР: Сортировка по возрастанию массива A из N целых чисел. (Базовый вариант)

Begin

write('количество элементов массива ');

read(N);

for i:=1 to n do read(A[i]);

for k:=n-1 downto 1 do { k - количество сравниваемых пар }

for i:=1 to k do

if A[i]>A[i+1] then

{меняем местами соседние элементы}

begin x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x; end;

for i:=1 to n do write(A[i],' '); {упорядоченный массив}

end.

 

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

 

ПРИМЕР: Сортировка обменом с проверкой факта перестановки.

program Sort_Obmen2;

var A:array[1..100] of integer;

N,i,k,x : integer; p:boolean;

Begin

write('количество элементов массива ');

read(N);

for i:=1 to n do read(A[i]);

k:=n-1; {количество пар при первом проходе}

p:=true; {логическая переменная p истинна, если были перестановки, т.е. нужно продолжать сортировку}

while p do

Begin

p:=false;

{Начало нового прохода. Пока перестановок не было.}

for i:=1 to k do

if A[i]>A[i+1] then

Begin

x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x; {меняем элементы местами}

p:=true; {и запоминаем факт перестановки}

end;

k:=k-1; {уменьшаем количество пар для следующего прохода}

end;

for i:=1 to n do write(A[i],' '); {упорядоченный массив}

end.

 

Следующая модификация алгоритма сортировки обменом получается при запоминании места последней перестановки. Если при очередном проходе последней парой элементов, которые поменялись местами, были A[i] и A[i+1], то элементы массива с i+1 до последнего уже стоят на своих местах. Использование этой информации позволяет нам сделать количество пар для следующего прохода равным i-1.

 

ПРИМЕР: Сортировка обменом с запоминанием места последней перестановки.

program Sort_Obmen3;

var A:array[1..100] of integer;

N,i,k,x,m : integer;

Begin

write('количество элементов массива ');

read(N);

for i:=1 to n do read(A[i]);

k:=n-1; {количество пар при первом проходе}

while k>0 do

Begin

m:=0;

{пока перестановок на этом проходе нет, место равно 0}

for i:=1 to k do

if A[i]>A[i+1] then

Begin

x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x; {меняем элементы местами}

m:=i; {и запоминаем место перестановки}

end;

k:=m-1; {количество пар зависит от места последней перестановки}

end;

for i:=1 to n do write(A[i],' '); {упорядоченный массив}

end.

Лабораторная работа №4

Цели. Научиться использовать в программах массивы для хранения данных.

Задание 1

Написать программу в процедурном стиле. Интерфейс программы оформить в виде некоторого меню, пункты которого соответствуют заданиям вашего варианта. Сортировку осуществить методом «пузырька». Алгоритм сортировки оформить в виде процедуры в модуле. Доказать правильность работы программы.

1. Вариант

Составить программу, суммирующую штрафное время команд текущий счет и номер результативного игрока при игре в хоккей. Выводить на экран суммарное время и текущий счет обеих команд после любого их изменения. После окончания игры выдать итоговое сообщение. Выдать на экран список номеров игроков в порядке их результативности.

2. Вариант

В ЭВМ по очереди вводятся номера спортсменов и их результаты в соревнованиях по прыжкам в высоту. Выдать на печать лучший результат после выступления очередного спортсмена. После окончания соревнования напечатать итоговое сообщение о трех лучших спортсменах.

3. Вариант

Составить программу помощника кассира в универсальном магазине. ЭВМ должна запрашивать цену товара и его количество, подсчитывать суммарную стоимость купленных товаров, запрашивать сумму денег, внесенных покупателем, и определять причитающуюся ему сдачу. Предусмотреть возможность в конце дня получать информацию о количестве и стоимости проданных товаров по 10 наименованиям. Упорядочить номера видов товаров в зависимости от их спроса.

Вариант

Составить программу, которая ведет учет очков, набранных каждой командой при игре в баскетбол, их штрафного времени и результативности игроков. После любого изменения счет выводить на экран. После окончания игры выдать итоговое сообщение. Упорядочить номера игроков в порядке их результативности.

 

5. Вариант

В турнире участвуют 10 команд. Составить программу, подсчитывающую число удалений в каждой команде при игре в хоккей. После каждого удаления выводить на экран номер хоккеиста, время, на которое он удаляется с поля, и суммарное число удалений в каждой команде. После окончания игры выдать итоговое сообщение; номера удалявшихся игроков распечатать в порядке возрастания штрафного времени. После окончания турнира напечатать номера игроков, имеющих наибольшее и наименьшее число удалений.

6. Вариант

Составить программу, подсчитывающую число посещений в поликлинике врачей специалистов (отоларинголога, окулист и хирурга). В конце дня выдать итоговое сообщение. В начале работы программы должна вводиться дата, которая будет фигурировать в итоговом сообщении. Предусмотреть возможность выдачи количества осмотренных больных в любой из дней недели и за всю неделю каждым из специалистов. Упорядочить номера специалистов в зависимости от количества посещений.

Вариант

ЭВМ используется при разборе коллекции марок. Составить программу, подсчитывающую число марок по спорту, по искусству, и прочих. Подсчитать общее количество марок в коллекции. Составить и распечатать таблицу наличия указанных марок. Упорядочить номера видов марок в зависимости от количества марок соответствующего вида.

8. Вариант

В сборе картофеля принимают участие 3 бригады. Учет ведется с помощью ЭВМ. Составить программу, которая определяет, сколько картофеля собрала каждая бригада (вес каждой новой порции прибавляется к уже подсчитанной сумме), выводит на экран текущий результат по всем бригадам в конце дня. Предусмотреть возможность хранения и выдачи итогов дня каждой бригады в течении недели. Упорядочить номера бригад в зависимости от итогов работы.

Вариант

Составить программу для определения подходящего возраста для вступления в брак, используя следующее соображение: возраст девушки равен половине возраста мужчины плюс 7, возраст мужчины определяется соответственно удвоением возраста девушки минус 7. Программа должна выдать необходимые сведения для всех желающих вступить в брак. Предусмотреть возможность создания банка данных и автоматического поиска соответствующей кандидатуры по возрасту. Упорядочить номера абонентов в зависимости от возраста.

Вариант

Составить программу, которая запрашивает стоимость книг, сумму денег, внесенных покупателем, а далее определяет причитающуюся сдачу (если денег внесено больше), печатает "спасибо", если сдачи не требуется, или выдает сообщение о недостаточности внесенной суммы. Программа должна обслуживать поток покупателей в течении дня и определять в конце дня общую сумму выручки. Составить таблицу стоимости и количества проданных в течении дня книг по 10 авторам. Таблицу распечатать в конце дня, упорядочив номера авторов в зависимости от количества проданных книг.

Вариант

Аналогично 11. В киоске продается газета стоимостью 3 коп. и журнал стоимостью 20 коп. Составить программу, которая спрашивает о желании покупателя ("Журнал или газета"), принимает деньги (сумма вводится с клавиатуры) и печатает причитающуюся сдачу. Составить таблицу стоимости и количества проданных в течении дня газет и журналов по 15 наименованиям. Таблицу распечатать в конце дня, упорядочив номера изданий в зависимости от количества проданных экземпляров.

Вариант

Составить программу обслуживания соревнований по прыжкам в высоту. Для каждого выступающего спортсмена в ЭВМ вводится номер и результат. На экране должны появиться номер и результат лучшего на данном этапе спортсмена. Составить таблицу результатов соревнований в порядке ухудшения результатов. Таблицу распечатать. Выдать общий итог.

Вариант

При продаже грампластинок ведется учет количества проданных пластинок с классической музыкой, эстрадной и детской. Составить программу, ведущую учет продажи пластинок за рабочий день. Распечатать таблицу количества и стоимости проданных за день пластинок. Выдать общий итог. Упорядочить номера видов пластинок зависимости от количества проданных штук.

Вариант

В соревнованиях по фигурному катанию участвуют 20 фигуристов. Выступление оценивают 6 судей. Написать программу, вычисляющую средний балл выступления и печатающую номера и средние баллы 10 лучших спортсменов. Результат выдавать на печать по ходу соревнований.

15. Вариант

В группе 20 студентов. В течении зимней сессии требуется сдать 5 экзаменов. Написать программу, определяющую количество студентов, сдавших экзамен без троек и количество задолжников и печатающую их номера. Номера студентов упорядочить в зависимости от результатов сессии.

Вариант

В трудовом коллективе проводится соревнование. Качество трудовой деятельности оценивается по 10 пунктам, каждый пункт оценивается баллами от 0 до 20. Написать программу, подсчитывающую средний балл и печатающую фамилии 5 победителей.

Вариант

В турнире по футболу участвует 5 команд. Каждая пара команд встречается один раз. Написать программу, подсчитывающую количество очков, набранных каждой командой, считая, что выигрыш-2 очка; проигрыш-0 очков. Упорядочить номера команд в зависимости от набранных очков.

Вариант

На заводе 5 цехов. Написать программу, определяющую перевыполнение плана каждого цеха за каждый месяц и за весь год. Предусмотреть возможность ввода данных каждый месяц. Распечатать таблицу выполнения плана цехами за год. Напечатать номера цехов в зависимости от выполнения плана.

Вариант

В гараже имеются 15 автомобилей. Подсчитать общий дневной пробег всех автомобилей, расход бензина. Напечатать номера автомобилей, на которых наиболее и наименее экономичное использование бензина.

Вариант

Городской санэпидстанцией берутся пробы воздуха на содержание 10 вредных для здоровья веществ. Написать программу, проверяющую, не превосходит ли содержание вредных веществ допустимые нормы, и печатающую наихудший и наилучший в экологическом отношении дни месяца. Предусмотреть возможность ввода данных и вывод их в виде таблицы. Упорядочить номера веществ в зависимости от превышения их содержания.

Вариант

OTK ежедневно проверяет качество продукции 15 цехов. Написать программу, подсчитывающую процент брака по каждому цеху ежедневно, печатающую номера лучшего и худшего цехов и общий процент брака ежедневно и ежемесячно. Составить таблицу брака, упорядочив цеха в порядке возрастания брака.

Вариант

За последние 10 лет прибрежная полоса Аральского моря, в результате обмеления переместилась на H км. Если динамика обмеления останется прежней, на сколько км переместится прибрежная полоса за N лет. Составить таблицу динамики на ближайшие 100 лет. Предусмотреть возможность ежегодного ввода реальных данных и сравнения их с предполагаемыми.

Вариант

В 10 хозяйствах передали часть земли в пользование 10 арендаторам. Составить программу, позволяющую сравнивать урожайность картофеля в гос. хозяйствах и у арендаторов ежегодно; печатать фамилии и названия 5 лучших.

24. Вариант

Составить программу для учета задолженностей по квартплате жильцов 20 квартирного дома. В памяти должны храниться взносы за каждый месяц. В конце года выдать таблицу взносов, номера квартир владельцев-задолжников и сумму задолженностей. Упорядочить номера квартир в зависимости от размера задолженности.

25. Вариант

Дан список учеников класса и отметки каждого из учеников за выполнение двух контрольных работ. Требуется: подсчитать число учеников, выполнивших первую работу на 5; подсчитать число учеников, выполнивших обе работы на 5. Упорядочить список учеников по среднему баллу за обе контрольные работы.

 

Задание 2.1

Написать программу. Предусмотреть задание массива случайным образом и ввод элементов с клавиатуры. Каждый из вариантов задания массива и вывод оформить в виде отдельной процедуры. Доказать правильность работы программы.

 

1. Вариант

В одномерном целочисленном массиве найти сумму четных элементов, больших первого элемента по модулю.

2. Вариант

В одномерном массиве, состоящем из вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами.

3. Вариант

В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается.

4. Вариант

В одномерном целочисленном массиве заменить отрицательные четные элементы на корень из их модуля.

5. Вариант

Определить сумму и количество элементов целочисленного массива mas[20], попадающих в заданный с клавиатуры диапазон.

6. Вариант

В одномерном целочисленном массиве найти пары соседних элементов противоположных знаков.

7. Вариант

Проверить, является ли одномерный массив симметричным относительно элемента, стоящего в середине.

8. Вариант

В одномерном целочисленном массиве найти сумму нечетных элементов до первого отрицательного.

9. Вариант

В одномерном целочисленном массиве подсчитать количество пар стоящих рядом элементов, кратных 3.

10. Вариант

В одномерном вещественном массиве найти сумму дробных частей его элементов.

11. Вариант

В одномерном массиве переставить последний элемент в начало, сдвигая все элементы вправо на одну позицию.

12. Вариант

В одномерном массиве заменить элементы средним арифметическим соседних элементов. Первый и последний элементы оставить без изменения.

13. Вариант

В одномерном массиве найти сумму элементов, меньших среднего арифметического всех элементов массива.

14. Вариант

В одномерном массиве найти элемент, который меньше наибольшего, но больше всех остальных.

15. Вариант

В одномерном массиве выделить убывающий подмассив.

16. Вариант

В одномерном массиве выделить знакочередующийся подмассив.

17. Вариант

В одномерном массиве проверить, есть ли одинаковые элементы, если есть, то заменить их нулями.

18. Вариант

В одномерном массиве подсчитать количество пар стоящих рядом нечетных элементов.

19. Вариант

В одномерном массиве наименьший элемент поместить на первое место, сдвигая все элементы, стоящие до наименьшего элемента, на одну позицию вправо.

20. Вариант

В одномерном массиве выяснить, идут ли элементы, кратные 4, в порядке убывания.

21. Вариант

В одномерном массиве выяснить, идут ли его четные элементы, стоящие на нечетных местах, в порядке возрастания.

22. Вариант

В одномерном массиве выяснить, идут ли его отрицательные элементы, стоящие на четных местах, в порядке убывания.

23. Вариант

В одномерном массиве найти все элементы, сумма цифр которых равна их индексам.

24. Вариант

Дана последовательность из 100 различных чисел. Найти сумму всех чисел, находящихся между наименьшим и наибольшим числом (в сумму включить и сами числа).

25. Вариант

Заданы массивы X,Y размером N. Массив X содержит значения от 1 до N (все элементы различны). Элементы массива Y переставить таким образом, чтобы элемент, находящийся на I-ом месте, оказался на месте элемента, индекс которого указан в X(I).

 

Задание 2.2

Написать программу для решения задачи. Если в задаче требуется обрабатывать строки или столбцы массива, то соответствующий двумерный массив определить как одномерный массив массивов и в подпрограмму передавать текущую строку или столбец как параметр.

 

1. Вариант

Пусть дана вещественная квадратная матрица порядка n. Постройте последовательность вещественных чисел по правилу: если в i-ой строке матрицы элемент, принадлежащий главной диагонали, отрицателен, то элемент равен сумме положительных элементов i-ой строки, в противном случае равен произведению отрицательных элементов i-ой строки.

2. Вариант

Заполнить двумерный массив mхn случайными целыми числами из интервала [-100,100]. Определить в массиве простые числа (использовать подпрограмму простое число).

3. Вариант

Дана матрица А размером . Определить k — количество особых элементов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца.

4. Вариант

Дана целочисленная матрица А размером . Найти номер первой по порядку строки, содержащей наибольшее число цифр.

5. Вариант

Заполнить двумерный массив nхm случайными целыми числами из интервала [-100,100]. Определить в массиве числа и их индексы (номера строк и столбцов), имеющие в разряде десятков цифру 5.

6. Вариант

Элемент матрицы назовём седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своём столбце или, наоборот, наибольшим в своей строке и одновременно наименьшим в своём столбце. Для заданной целой матрицы размером 8´10 напечатать индексы всех седловых точек.

7. Вариант

Заполнить двумерный массив mхn случайными целыми числами из интервала [-100,100]. Найти в массиве совершенные числа (использовать подпрограмму совершенное число).

8. Вариант

Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом (суммы элементов во всех строках и столбцах одинаковы).

9. Вариант

Дана матрица А размером . Найти номера строк, элементы каждой из которых образуют монотонную последовательность.

10. Вариант

Просуммировать элементы квадратной матрицы размером 9´9, расположенные в нижней четверти, ограниченной диагоналями, включая диагонали.

11. Вариант

Дана матрица А размером , состоящая из натуральных чисел. В каждом столбце обнулите минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданную.

12. Вариант

Просуммировать элементы квадратной матрицы размером 8´8, расположенные в правой четверти, ограниченной диагоналями, включая диагонали.

13. Вариант

Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.

14. Вариант

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

15. Вариант

Дана целочисленная матрица А размером . Определить для каждой строки, все ли ее элементы являются кубами целых чисел.

16. Вариант

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали.

17. Вариант

Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный элемент.

18. Вариант

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.

19. Вариант

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

20. Вариант

Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером т.

21. Вариант

Матрицу n´n повернуть (без использования вспомогательных массивов) на 90° вправо.

22. Вариант

Дана целочисленная матрица размером n´n. Преобразовать массив, осуществив поворот вокруг центра на против часовой стрелки.

23. Вариант

Дана матрица А размером . Найти номера столбцов, элементы каждого из которых образуют симметричную последовательность.

24. Вариант

Дана вещественная матрица n´n. В строках с отрицательным элементом на главной диагонали найти наибольший из элементов.

25. Вариант

Дана квадратная таблица размером N´N. Составьте программу формирования последовательности В, элементами которой являются элементы таблицы А, расположенные под главной диагональю. В полученной последовательности найдите три наименьших элемента. Если количество элементов между первым и вторым элементом совпадает с количеством элементов между вторым и третьим, то поменяйте их местами, сохранив порядок следования (без использования дополнительного массива), преобразованный линейный массив выведите на экран в строку.

 

Вариант0

Пассажирский самолет может поднять груз общим весом 30 т. Составить программу для определения веса почтового груза, который можно поместить в самолете после посадки пассажиров и загрузки их багажа. Во время регистрации пассажиров ЭВМ должна подсчитывать количество пассажиров (условный вес одного пассажира 50 кг). Предусмотреть возможность ввода номера пассажира и веса его багажа в таблицу и вывода таблицы на экран. Упорядочить номера пассажиров в зависимости от веса багажа пассажиров.

{Лабораторная работа №4 задача 1}

 

Unit Sort_Mas;

 

Interface

{сортируется массив x, а элементы y переставляются соответственно}

procedure sort(var x,y : array of integer ; count : integer);

 

Implementation

 

procedure sort;

var

i,k,c : integer;

f : boolean;

 

begin

k := 0;

repeat

f := true;

for i := 0 to count-k-2 do

begin

if x[i] > x[i+1] then

begin

c := x[i]; x[i] := x[i+1]; x[i+1] := c;

c := y[i]; y[i] := y[i+1]; y[i+1] := c;

f := false

end;

end;

inc(k);

until f;

end;

end.

 

Program Lab_Rab_4_1;

Uses Crt, Sort_Mas ;

Const N_max = 30000; {максимальная грузоподъемность самолета}

N = 300; {максимальное количество пассажиров}

Ves = 50; {условный вес пассажира}

Type

mas1 = array [1..N] of integer;

mas = array [1..2] of mas1;

 

{регистрация пассажиров}

procedure Create( var x : mas ; var l :integer);

var

i, S : integer;

ch : char;

begin

Writeln('Регистрация пассажиров');

i := 0; S := 0;

repeat

inc(i);

write('Введите регистрационный номер ',i, '-го пассажира ');

ReadLn(x[1,i]);

write('Введите вес багажа ',i, '-го пассажира ');

ReadLn(x[2,i]);

S := S + x[2,i] + ves;

Write('Продолжить? (Y/N) ');

ReadLn(ch);

If (i > N) or (S > N_max) then

begin

writeln('Самолет перегружен!');

break

end;

until (ch='N') or (ch='n');

l := i;

Writeln ('Регистрация завершена');

ReadKey;

end;

 

{просмотр пассажиров}

procedure View( x : mas ; l :integer);

var

i, S : integer;

begin

 

Writeln(' Информация о пассажирах');

Writeln('| № п/п| Регистрационный № | Вес багажа |');

Writeln('_________________________________________');

S := 0;

For i := 1 to l do

begin

WriteLn('|', i:4 , ' | ', x[1,i]:6,' | ', x[2,i]:6,' | ');

S := S + x[2,i] + ves;

Writeln('_________________________________________');

end;

 

Writeln ('Всего ', l, ' пассажиров');

Writeln ('Общий вес ', S);

ReadKey;

end;

 

{oтсортированный просмотр пассажиров}

procedure View_sort( x : mas ; l :integer);

var

y : mas;

t,t1 : mas1;

 

begin

t := x[2];

t1 := x[1];

sort(t,t1,l);

y[1] := t1;

y[2] := t;

Writeln('Упорядоченный вывод ');

View(y,l);

end;

 

{почтовый груз}

procedure Gruz( x : mas ; l :integer);

var

i, S : integer;

begin

 

S := 0;

For i := 1 to l do

begin

S := S + x[2,i] ;

end;

 

Writeln ('Всего ', l, ' пассажиров');

Writeln ('Общий вес багажа ', S);

Writeln ('Общий вес пассажиров ', ves * l);

Writeln ('Вес почтового груза ', N_max - S - ves *l);

ReadKey;

end;

 

var

Ch : integer ; {пункт меню}

A : mas;

Count : integer;

 

Begin

Count := 0;

Repeat

ClrScr;

Writeln('1 - Регистрация пассажиров ');

Writeln('2 - Просмотр пассажиров ');

Writeln('3 - Отсортированный вывод ');

Writeln('4 - Почтовый груз ');

Writeln('5 - Выход ');

Writeln;

Write('Введите № пункта меню - ');

ReadLn(Ch);

ClrScr;

Case ch of

1 : Create (A,Count);

2 : View(A,Count);

until Ch=5;

End.

 

 

{Лабораторная работа №4 задача 2.1)}

В одномерном целочисленном массиве заменить нечетные элементы, стоящие на четных местах их квадратами.

 

{Лабораторная работа №4 задача 2}

Program Lab_Rab_4_2;

Uses Crt ;

Const

N = 10; {количество элементов массива}

Type

mas = array [1..N] of integer;

 

procedure View ( x : mas );

var

i : integer;

begin

For i := 1 to N do Write(x[i]:5);

writeln;

end;

 

procedure Create_Random ( var x : mas );

var

i : integer;

begin

For i := 1 to N do x[i] := Random(100)-50;

end;

 

procedure Create ( var x : mas );

var

i : integer;

begin

ClrScr;

For i := 1 to N do

begin

Write('Введите ', i, ' элемент массива ');

Readln(x[i]);

end;

end;

 

var

A : mas;

Ch,i : integer;

Begin

ClrScr;

Randomize;

Writeln('1 - Ввод массива ');

Writeln('2 - Инициализация массива случайными числами ');

Writeln;

 

repeat

Write('Введите № пункта меню - ');

ReadLn(Ch);

Case ch of

1 : Create (A);

2 : Create_Random(A);

else writeln('повторите ввод');

end;

until (Ch=1) or (Ch=2);

ClrScr;

Writeln('Исходный массив');

View(A);

i := 2;

while i <= N do

begin

If odd(A[i]) then A[i] := sqr(A[i]);

i := i + 2;

end;

Writeln('Измененный массив');

View(A);

ReadKey;

End.

 

 

{Лабораторная работа №4 задача 2.2}

Дана натуральная матрица размером n´n, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.

 

{Лабораторная работа №4 задача 2.2}

Program Lab_Rab_4_2_2;

Uses Crt ;

Const

N = 5; {количество элементов массива}

Type

mas = array [1..N,1..N] of byte;

 

procedure View ( x : mas );

var

i,j : integer;

begin

For i := 1 to N do

begin

For j:= 1 to N do Write(x[i,j]:5);

writeln;

end;

end;

 

{создание массива случайных чисел с проверкой, того что все элементы разные}

procedure Create_Random ( var x : mas );

var

i,j : integer;

chisla : set of byte; {множество выпавших чисел (тему множества см. ниже)}

begin

Randomize;

chisla := [];

For i := 1 to N do

For j:= 1 to N do

begin

repeat

x[i,j] := Random(n*n+10);

until not (x[i,j] in chisla);

chisla := chisla + [x[i,j]];

end;

end;

 

procedure Create ( var x : mas );

var

i,j : integer;

begin

ClrScr;

For i := 1 to N do

For j := 1 to N do

begin

Write('Введите A[',i,';',j, ']= ');

Readln(x[i,j]);

end;

end;

 

function Max_i( x : mas) : integer;

var

i,j,p,l : integer;

begin

p := 1; l := 1;

For i := 1 to N do

For j := 1 to N do

if x[p,l] < x[i,j] then

begin

p := i;

l := j;

end;

Max_i := p;

end;

 

function Min_j( x : mas) : integer;

var

i,j,p,l : integer;

begin

p := 1; l := 1;

For i := 1 to N do

For j := 1 to N do

if x[p,l] > x[i,j] then

begin

p := i;

l := j;

end;

Min_j := l;

end;

 

var

A : mas;

Ch,m,k,i,S : integer;

Begin

ClrScr;

Randomize;

Writeln('1 - Ввод массива ');

Writeln('2 - Инициализация массива случайными числами ');

Writeln;

repeat

Write('Введите № пункта меню - ');

ReadLn(Ch);

Case ch of

1 : Create (A);

2 : Create_Random(A);

else writeln('повторите ввод');

end;

until (Ch=1) or (Ch=2);

ClrScr;

Writeln('Исходный массив');

View(A);

m := Max_i(A);

k := Min_j(A);

Writeln;

Writeln('Максимальный элемент в строке №=',m);

Writeln('Минимальный элемент в столбце №=',k);

S:=0;

For i := 1 to N do S := S + A[m,i] * A[i,k];

Writeln('Скалярное произведение =',S);

ReadKey;

End.

 

Тема 5. Строки. Записи. Множества. Работа с файлами

Особое место в языке ПАСКАЛЬ занимают массивы символов. Стандартный ПАСКАЛЬ допускает два способа хранения символьных массивов в памяти ЭВМ:…   var MAS: Packed Array[1..20] of Char;

Begin

x:='turbo'; y:='pascal';

z:=x+' '+y; { z='turbo pascal' }

s:=''; { пустая строка }

for c:='a' to 'z' do s:=s+c; { s='abcd..xyz' }

writeln(s);

end.

Сравнение строк выполняется посимвольно в соответствии с их кодами до первого несовпадения. Если одна из строк закончилась до первого несовпадения, то она считается меньшей. Пустая строка меньше любой строки.

ПРИМЕР: Сравнение строк.

'abcd' > 'abcD' { 'd'>'D' }

'abcd' > 'abc' { 'd'>'' }

'abc' < 'axxc' { 'b'<'x' }

'abcd' = 'abcd'

Существует ряд стандартных функций и процедур для работы со строками.

· Функция Concat(s1,s2,..,sn) возращает строку s1+s2+..+sn. · Функция Copy(s,p,k) возвращает фрагмент строки s, который начинается в… · Функция Pos(s1,s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или…

ОПИСАНИЕ ТИПА ЗАПИСЬ

Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов т.е. это структура данных, которая может содержать информацию разных типов, объединенную под одним названием Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.

Формат:

Имя типа = RECORD

список полей 1 : тип 1;

- - -

список полей N : тип N;

CASEполе выбора : тип OF

значение 1 : (список полей 1 : тип 1);

. . . . .

значение N : (списокполей N : тип N)

END;

Типы полей записи могут быть любыми. В свою очередь, тип запись может использоваться для создания массивов и новых записей. Степень вложенности не ограничена.

Список полей может состоять из двух разделов: постоянной и вариантной части. В постоянной части идет перечисление полей записи (идентификаторов) с указанием их типов. Синтаксис такой же, как в разделе var.

Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей. Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля.

После описания постоянных полей может следовать вариантная часть, которая может быть только одна и имеет вид:

CASEполе выбора : тип OF

значение 1 : (список полей 1);

- - -

значение N : (список полей N);

 

Поле выбора может отсутствовать. Если оно есть, то его воспринимают как постоянное поле записи. Если его нет, указывается только тип, который должен быть порядковым, но он не влияет ни на количество перечисленных ниже значений, ни на типы этих значений.

Все варианты располагаются в одном и том же месте памяти, которой выделяется столько, сколько требуется для максимального по размеру варианта. Это приводит к тому, что изменение одного вариантного поля оказывает влияние на все остальные. Это увеличивает возможности преобразования типов,

 

ПРИМЕР: Запись с вариантами.

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.

При использовании записей с вариантами необходимо придерживаться следующих правил:

• все имена полей должны отличаться друг от друга по крайней мере одним символом, даже если они встречаются в разных вариантах;

• запись может иметь только одну вариантную часть, причем вариантная часть должна размещаться в конце записи;

• если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом: <метка>: () ;

 

Значения выбора могут повторяться. Имена полей записи не являются переменными и, следовательно, могут повторяться, но только на разных уровнях.

Для удобства обращения к полям записей может использоваться оператор присоединения

WITH переменная DO оператор;

Здесь переменная - это запись, за которой может следовать список вложенных полей,

Инициализация записей осуществляется с помощью типизированных констант:

 

type

RecType= Record

x,y: Word;

ch: Char;

dim: Array[1..3] of Byte

end;

const

Rec: RecType= ( x: 127; y: 255;

ch: 'A';

dim: (2, 4, 8) );

Множества

Понятие множества в языке ПАСКАЛЬ основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.

Множественный тип описывается с помощью служебных слов Set of, например:

 

type M= Set of B;

 

Здесь М - множественный тип, В - базовый тип.

Пример описания переменной множественного типа:

 

type

M= Set of 'A'..'D';

var

MS: M;

 

Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных:

var

C: Set of 0..7;

Константы множественного типа записываются в виде заключенной в квадратные скобки последовательности элементов или интервалов базового типа, разделенных запятыми, например:

['A', 'C'] [0, 2, 7] [3, 7, 11..14].

Константа вида [ ] означает пустое подмножество.

Множество включает в себя набор элементов базового типа, все подмножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подмножеств, входящих в это множество, равно 2 в степени К. Пусть имеется переменная Р интервального типа:

 

var P: 1..3;

 

Эта переменная может принимать три различных значения - либо 1, либо 2, либо 3. Переменная Т множественного типа

 

var T: Set of 1..3;

может принимать восемь различных значений:

[ ] [1,2]

[1] [1,3]

[2] [2,3]

[3] [1,2,3]

Порядок перечисления элементов базового типа в константах безразличен.

Значение переменной множественного типа может быть задано конструкцией вида [T], где T - переменная базового типа.

К переменным и константам множественного типа применимы операции присваивания(:=), объединения(+), пересечения(*) и вычитания(-):

 

['A','B'] + ['A','D'] даст ['A','B','D']

['A'] * ['A','B','C'] даст ['A']

['A','B','C'] - ['A','B'] даст ['C'].

 

Результат выполнения этих операций есть величина множественного типа.

К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип, например:

 

['A','B'] = ['A','C'] даст FALSE

['A','B'] <> ['A','C'] даст TRUE

['B'] <= ['B','C'] даст TRUE

['C','D'] >= ['A'] даст FALSE.

 

Кроме этих операций для работы с величинами множественного типа в языке ПАСКАЛЬ используется операция in проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения, например:

A in ['A', 'B'] даст TRUE,

2 in [1, 3, 6] даст FALSE.

При использовании в программах данных множественного типа выполнение операций происходит над битовыми строками данных. Каждому значению множественного типа в памяти ЭВМ соответствует один двоичный разряд. Например, множество

['A','B','C','D']

представлено в памяти ЭВМ битовой строкой

1 1 1 1.

 

Подмножества этого множества представлены строками:

['A','B','D'] 1 1 0 1

['B','C'] 0 1 1 0

['D'] 0 0 0 1

Величины множественного типа не могут быть элементами списка ввода - вывода.

В каждой конкретной реализации транслятора с языка ПАСКАЛЬ количество элементов базового типа, на котором строится множество, ограничено. В TURBO PASCAL количество базовых элементов не должно превышать 256.

Инициализация величин множественного типа производится с помощью типизированных констант:

 

const seLit: Set of 'A'..'D'= [];

Проиллюстрируем применение данных множественного типа на примере.

Работа с файлами

Введение файлового типа в язык ПАСКАЛЬ вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.

Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент.

Общее свойство массива, множества и записи заключается в том, что количество их компонент определено на этапе написания программы, тогда как количество компонент файла в тексте программы не определяется и может быть произвольным.

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

При работе с файлами выполняются операции ввода - вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл).

Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид:

 

'c:\ABC150\pr.pas'

'lab3.pas'.

 

Операционная система MS-DOS не делает особого различия между файлами на дисках и лентах и устройствами ЭВМ и портами коммуникаций. В TURBO PASCAL могут использоваться имена устройств и портов, определенные в MS-DOS, например:

 

'CON', 'LPT1', 'PRN', 'COM1', 'AUX', 'NUL'.

 

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Таким компонентом может быть любой тип Турбо Паскаля, кроме файлового. Например, допускается файл записей или файл строк, но нельзя создать "файл файлов". В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти. Все это позволяет считать файлы одной из наиболее фундаментальных структур данных в Турбо Паскале.

Для доступа к файлу описывается специальная файловая переменная, которая считается представителем файлов в Паскаль – программе (чаще всего ее обозначают как F).

Файл можно представить как потенциально бесконечный список значений одного и того же (базового) типа. Все элементы файла считаются пронумерованными, начальный элемент имеет нулевой номер.

Файл

Элемент1 Элемент2 Элемент3 · · ·

Текущий указатель

Как правило, все действия с файлом (чтение из файла, запись в файл) производятся поэлементно, причем в этих действиях участвует тот элемент файла,… По способу доступа к элементам различают файлы последовательного и прямого… Файлом последовательного доступа называется файл, к элементам которого обеспечивается доступ в такой же…

Лабораторная работа №5

Цели. Научиться использовать различные типы файлов для хранения данных. Правильно записывать и считывать данные из файла. Корректно обрабатывать операцию открытия файла. Четко представлять разницу между файлами с последовательным и прямым способом доступа.

Задание 1

В простейшем текстовом редакторе создать текстовый файл.

При запуске программы на выполнение на экране должно отображаться меню:

1. Обработать данные

2. Добавить данные

3. Распечатать содержимое файла REZULT.TXT.

Выбор соответствующего пункта меню осуществлять указанием номера.

Реализацию каждого пункта меню и самого меню оформить в виде процедуры, которые поместить в модуль.

 

1. Вариант

Подсчитать количество согласных и гласных "а", "о" ,"у" в тексте. Текст ввести в файл LITER.TXT. Результаты работы программы записать в файл REZULT.TXT.

2. Вариант

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

3. Вариант

Составить программу, печатающую слова из файла SLOVA.TXT в перевернутом виде. Результаты работы программы записать в файл OWRAT.TXT.

4. Вариант

Составить программу, шифрующую и расшифровывающую тексты. Текст ввести в файл LITER.TXT. Зашифрованный текст хранить в файле SHIFR.TXT.

5. Вариант

Осуществить поиск всех вхождений данного слова в тексте из файла OBRAZEC.TXT. Выдать на экран сообщение "слова.....в тексте нет", или "слово..... стоит на....месте в....предложении". Результаты работы программы записать в файл REZULT.TXT.\

6. Вариант

Фамилии, имена, отчества ввести в файл FIO.TXT. На экране напечатать фамилию и первые буквы имени и отчества. Результаты работы программы записать в файл REZULT.TXT.

7. Вариант

.Даны тексты простейших тригонометрические формул (например: cos(2,56),tg(1,12),...). Тексты формул ввести в файл TRIG.TXT. Обработать тексты формул, посчитать и напечатать значения их выражений. Результат работы программы записать в файл REZULT.TXT.

8. Вариант

Поменять в каждом предложении текста первое слово с последним. Текст ввести в файл TEXT.LIT. Результаты работы программы записать в файл REZULT.TXT.

9. Вариант

В данном тексте в словах, имеющих длину более символов, заменить пробелами буквы, начиная с-11-ой. Текст ввести в файл OBREZ.LIT. Результаты работы программы записать в файл REZULT.TXT.

10. Вариант

Составить список имен подруг. Подсчитать, сколько раз каждое имя содержится в файле. Имена ввести в файл IMENA.ROD Результаты работы программы записать в файл REZULT.TXT.

11. Вариант

В данном списке фамилий подгруппы RODGR2.22 все фамилии напечатать в родительном падеже, вставляя в текст "Лекции по ВТ ....-группа 22".

Например: Яппарова Р.---> Яппаровой Р., вставляя в текст "Лекции по ВТ Яппаровой Р.- группа 22". Список фамилий ввести в файл RODGR2.22.Результат работы программы записать в файл REZULT.TXT

12. Вариант

Заданы фамилии, инициалы, номера телефонов. Подсчитать количество абонементов с фамилиями, начинающимися на указанную букву. Данные абонентов ввести в файл АВОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

13. Вариант

Сообщить фамилии абонентов, номера телефонов которых лежат в указанном интервале. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

14. Вариант

Дан список фамилий и номеров телефонов абонентов. Составить отдельный список номеров телефонов. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

15. Вариант

Дан список фамилий и номеров телефонов абонентов. Составить отдельный список фамилий абонентов. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

16. Вариант

Дан список фамилий и номеров телефонов абонентов. Найти самую длинную и самую короткую фамилии. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

17. Вариант

Дан список фамилий инициалов студентов группы и оценки по 5-ти дисциплинам. Составить 5 списков, состоящих из фамилий студентов и оценок i-ой дисциплины.

Пример: Иванов 5 4 3 5 4 ---> Иванов 5 в первом списке Иванов 4 во втором списке Иванов 3 в третьем списке Иванов 5 в четвертом Иванов 4 в пятом.

Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файлы REZULT1.TXT , REZULT2.TXT, REZULT3.TXT, REZULT4.TXT, REZULT5.TXT.

18. Вариант

Дан список фамилий инициалов студентов группы и оценки по 5-ти дисциплинам. Составить списков, отличников хорошистов, троечников, неуспевающих.

Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файлы REZULT5.TXT, REZULT4.TXT, REZULT3.TXT, REZULT2.TXT.

19. Вариант

Дан список фамилий инициалов студентов группы и оценки по 5-ти дисциплинам. Составить список средних балов по каждой дисциплине, указав название дисциплины. Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файл REZULT.TXT..

20. Вариант

Фамилии записаны в файл FIO.DAT. Программа анализирует: фамилия записана буквами русского алфавита; первая буква заглавная, остальные строчные. Если сделана ошибка, программа выдает соответствующее сообщение. Результаты работы программы записать в файл REZULT.TXT.

21. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий пяти лучших команд. Результаты работы программы записать в файл REZULT.TXT. Протокол гонок записан в файл SKI.DAT. Для каждого участника вводится фамилия, время старта (часы, минуты, секунды),время финиша. Используя данный протокол, вывести на экран дисплея фамилии участников, выполнивших норму ГТО. Результат работы программы записать в файл REZULT. TXT.

22. Вариант

Протокол гонок записан в файл SKI.DAT. Для каждого участника вводится фамилия, время старта (часы, минуты, секунды),время финиша. Используя данный протокол, вывести на экран дисплея фамилии участников, выполнивших норму ГТО. Результат работы программы записать в файл REZULT. TXT.

23. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий пяти худших команд. Результаты работы программы записать в файл REZULT.TXT.

24. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий команд, сыгравших в ничью. Результаты работы программы записать в файл REZULT.TXT.

25. Вариант

Пусть дан текстовый файл INPUT.TXT. Напечатайте первое слово, состоящее из различных букв. Результат работы программы записать в файл REZULT.TXT.

 

Задание 2.

При запуске программы на выполнение на экране должно отображаться меню:

1. Создать файл

2. Открыть файл

3. Обработать данные

4. Добавить данные

5. Удалить данные

6. Распечатать данные

Выбор соответствующего пункта меню осуществлять указанием номера.

Реализацию каждого пункта меню и самого меню, операций поиска и сортировки оформить в виде процедуры, которые поместить в модуль.

 

1. Вариант

Сформировать список фамилий любимых писателей учеников класса (ученики по очереди вводят по три фамилии различных писателей), хранящийся в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – фамилия ученика фамилии писателей. Напечатать, сколько учеников назвали фамилию данного писателя (фамилии писателя вводится с клавиатуры).

2. Поля записи – фамилия ученика и поле, являющееся записью из трех полей - фамилии писателей. Напечатать фамилии пяти наиболее популярных писателей.

2. Вариант

Известны результаты сдачи сессии (три экзамена) группой студентов. Информация об одном студенте вводится в виде записи и хранится в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – фамилия, три оценки. Сообщить, сколько студентов сдали данный предмет на хорошо (название предмета вводится с клавиатуры).

2. Поля записи – фамилия, поле оценки, являющееся записью из трех полей типа byte (три оценки). Сообщить фамилии пяти лучших студентов. Данные - результаты сессии вывести на экран в виде таблицы. В шапке таблицы вывести названия предметов.

3. Вариант

Ввести фамилии и даты (день, месяц и год) рождения Ваших друзей. Вывести фамилии тех, кто родился летом (июнь, июль, август). Данные о друге хранить в виде записи в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – ФИО, день, месяц и год. Вывести фамилии тех, кто родился летом (июнь, июль, август). Результат работы программы записать в массив REZ. Элемент массива – фамилия друга.

2. Поля записи – ФИО, дата - являющаяся записью из трех полей - день, месяц и год. Сообщить фамилии трех самых старших друзей.

4. Вариант

Ввести данные студентов.

1. Данные об одном студенте хранить в виде записи с полями – фамилия и инициалы, пол (одна буква М или Ж), год рождения. Напечатать список студентов мужского пола с указанием их возраста. В конце списка напечатать средний возраст. Результат работы программы записать в файл REZ.DAT.

2. Данные об одном студенте хранить в виде записи с полями – фамилия и инициалы, пол (одна буква М или Ж), дата рождения, являющаяся записью из трех полей - день, месяц и год. Напечатать список студентов мужского пола с указанием их возраста, упорядочив список по возрасту. Результат работы программы записать в файл REZ.DAT.

5. Вариант

Ввести информацию об автолюбителях: фамилия, марка автомобиля, цвет машины.

1. Данные хранить в виде записи с полями – фамилия и инициалы, марка автомобиля, цвет машины. Вывести на экран дисплея сведения об автолюбителях, имеющих автомобиль "Жигули" зеленого цвета. Результат работы программы записать в файл REZ.DAT.

2. Данные хранить в виде записи с полями – фамилия и инициалы, автомобиль - являющаяся записью из трех полей: марка автомобиля, цвет машины, год выпуска. Вывести на экран дисплея сведения об автолюбителях, имеющих автомобиль "Жигули" зеленого цвета, список упорядочить по году выпуска. Результат работы программы записать в файл REZ.DAT.

6. Вариант

Ввести данные о студентах одного курса (фамилия и инициалы, пол, год рождения, месяц, день рождения). Вывести на экран дисплея фамилии студентов мужского пола, родившихся летом, (июнь, июль, август). Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1.Данные хранить в виде записи с полями – фамилия и инициалы, пол, год, месяц, день рождения. Результат работы программы записать в массив REZ. Элемент массива – фамилия студента.

2. Данные хранить в виде записи с полями – фамилия и инициалы, пол, дата рождения - являющаяся записью из трех полей: год, месяц, день рождения. Вывести на экран дисплея фамилии студентов мужского пола, родившихся летом, (июнь, июль, август), список упорядочить по возрасту.

7. Вариант

Ввести информацию о поездах, отправляющихся с Ленинградского вокзала г. Москвы (номер поезда, станция назначения, время отправления, время в пути). Вывести на экран дисплея информацию о поездах, отправляющихся в Ленинград от 21 до 24часов. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – номер поезда, станция назначения, время отправления, время в пути.

2. Данные хранить в виде записи с полями – номер поезда, станция назначения, время - являющееся записью из двух полей: время отправления, время в пути. Вывести на экран информацию о поездах, отправляющихся в Ленинград от 21 до 24часов, список упорядочить номеру.

8. Вариант

В задаче 8 вывести информацию о поездах, следующих в г.Ленинград и находящихся в пути менее 8 часов. Данные хранить в виде записи (см. задачу 7).

9. Вариант

Составьте список книг по программированию вашей личной библиотеки (фамилия автора и его инициалы, название книги, название издательства, год издания). Вывести на экран дисплея фамилии авторов и названия книг, выпущенных издательством "Мир". Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия автора и его инициалы, название книги, название издательства, год издания.

2. Данные хранить в виде записи с полями – фамилия автора и его инициалы, название книги, данные - являющееся записью из двух полей: название издательства, год издания. Вывести на экран дисплея фамилии авторов, названия книг и год издания, выпущенных издательством "Мир", список упорядочить по году издания.

10. Вариант

Ввести информацию о магазинах Вашего города (района): название магазина (универмаг, продукты, ткани и т.д.),его номер, адрес. Вывести на экран дисплея информацию обо всех магазинах "Книги". Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – название магазина (универмаг, продукты, ткани и т.д.), его номер, улица, номер дома.

2. Данные хранить в виде записи с полями – название магазина, его номер, адрес - являющееся записью из двух полей: улица, номер дома. Вывести на экран дисплея. Вывести на экран дисплея информацию обо всех магазинах "Книги", список упорядочить по номеру магазина.

11. Вариант

В шахматном турнире принимает участие 10 шахматистов. Ввести фамилии участников и инициалы, их возраст и результаты: победа-1, ничья-0.5, проигрыш-0 очков. Вывести на экран фамилии участников турнира и количество набранных ими очков в порядке занятых мест. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия участника и инициалы, возраст, результат.

2. Данные хранить в виде записи с полями – результат, участник, являющийся записью из двух полей: фамилия участника и инициалы, возраст. Вывести на экран фамилии участников турнира и количество набранных ими очков в порядке занятых мест.

12. Вариант

В чемпионате по футболу принимает участие 6 команд. Ввести названия команд и результаты игр: выигрыш-2,ничья-1, проигрыш-0 очков. Вывести на экран дисплея названия трех лучших команд по числу очков и количество побед каждой команды. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – название команды, город, результат.

2. Данные хранить в виде записи с полями – результат, участник, являющееся записью из двух полей: название команды, город. Вывести на экран дисплея названия трех лучших команд по числу очков и количество побед каждой команды. Сообщить результаты всех команд указанного города.

13. Вариант

В классном журнале (в классе не более 20 учеников) каждый день по предмету отмечается пропуск занятия или выставляется оценка за ответ. Ввести данные об успевающих учениках за один день: фамилии и инициалы, оценка, пропуск. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия и инициалы, пропуск, оценка.

2. Данные хранить в виде записи с полями – фамилия и инициалы, данные, являющиеся записью из двух полей: пропуск, оценка. Вывести на экран дисплея фамилии учеников, не имеющих ни одной двойки, список упорядочить по набранному баллу.

 

 

14. Вариант

В задаче 13 сообщить фамилии учащихся, не имеющих тройки. Результат работы программы записать в файл REZ.DAT.

15. Вариант

В задаче 13 вывести на экран дисплея фамилии учеников, имеющих пропуски занятий.

16. Вариант

К спортивным журналистам обратились с просьбой назвать трех лучших хоккеистов сезона. Информация от каждого журналиста поступает независимо от других. Сообщить количество баллов каждого названного хоккеиста (за первое место-3, за второе-2,за третье место-1). Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия и инициалы 1, команда 1,балл 1, фамилия и инициалы 2, команда 2, балл2, фамилия и инициалы 3, команда 3, балл3.

2. Данные хранить в виде записи с полями – хоккеист1, хоккеист2, хоккеист3, каждое поле является полем с полями: фамилия и инициалы, команда, балл. Вывести на экран дисплея фамилии хоккеистов, список упорядочить по набранному баллу. Определить лучшего хоккеиста сезона по сумме очков (за первое место-3, за второе-2,за третье место-1).

17. Вариант

Ввести информацию по результатам подписки на газеты и журналы. Указать наименование, стоимость подписки на год, количество подписчиков. Выдать справку об общем количестве подписчиков и общей сумме полученных денег. Сообщить самое популярное издание.

1. Данные хранить в виде записи с полями – наименование, стоимость подписки на год, количество подписчиков.

2. Данные хранить в виде записи с полями – наименование, которое является записью с двумя полями: стоимость подписки на год, количество подписчиков. Сообщить список всех изданий, упорядочив по популярности.

18. Вариант

Для задачи 17 напечатать, какое издание собрало наибольшую сумму.

19. Вариант

В задаче 17 сообщить информацию только для журналов.

20. Вариант

Ввести результаты спортивного турнира; фиксируется количество очков, набранных каждым игроком одной команды. В команде всего 3 игрока. По результатам игры вывести на экран фамилию лучшего игрока и количество набранных им очков. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – наименование команды, фамилии и инициалы игроков очки игроков.

2. Данные хранить в виде записи с полями – наименование команды, игроки, последнее поле является записью с полями: фамилии и инициалы игроков очки игроков. Сообщить фамилии всех игроков и набранных ими баллов, упорядочив фамилии по результативности.

21. Вариант

Ввести результаты нескольких проведенных тиражей "Спортлото:5 из 36". Вывести на экран дисплея частоту появления каждого из 36 номеров во всех проведенных тиражах. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – номер тиража, пять выигрышных номеров.

2. Данные хранить в виде записи с полями – номер тиража, являющийся записью с пятью полями: пять выигрышных номеров. Сообщить выигрышные номера, упорядочив их в порядке возрастания частоты появления.

22. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чьи имена, начинаются с буквы А. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

23. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чье имя введено с клавиатуры. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

 

24. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чей возраст лежит в заданном интервале. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

25. Вариант

В задаче варианта 24, вывести список 5 самых старых людей.

Вариант0

 

1.Подсчитать количество слов заданной длины в тексте и вывести эти слова на печать. Абзац текста ввести в файл TEXT.LIT. Результаты работы программы записать в файл REZULT.TXT.

{Лабораторная работа №5 задача1}

Program Lab_Rab_5_1;

Uses Crt;

const

Name_file : string = 'C:\text.lit';

{множество символов - разделителей слов}

Razd : set of char = [' ', '.', '?', '!', '-', ':', ','];

var

Len, K : integer;

Ch : char;

Sl : string;

f,f1 : text;

Poisk : boolean;

 

 

Begin

ClrScr;

Assign(f,Name_File);

Assign(f1,'C:\Result.txt');

Rewrite(f1);

{$I-}

Reset(f);

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Исходный текст');

While Not Eof(f) do

begin

Readln(f,Sl);

Writeln(sl);

end;

Close(f);

Reset(f);

Writeln;

Write('Введите длину искомых слов :');

ReadLn(Len);

Sl := ''; Poisk := false;

While Not Eof(f) do

begin

Read(f,Ch);

If not (Ch in Razd) then Sl := Sl + Ch

else

begin

If length(Sl) = Len then

begin

Poisk := true;

Writeln(f1,Sl)

end;

Sl := '';

end;

 

end;

Close(f); Close(f1);

If Poisk then

begin

Reset(f1);

Writeln('Найденные слова');

While Not Eof(f1) do

begin

Readln(f1,Sl);

Writeln(sl);

end;

Close(f1);

end

else Writeln('В тексте нет слов длины ',Len);

end;

ReadKey;

End.

2.Больница ведет учет пациентов. Для каждого пациента имеется информация: Ф.И.О., год рождения, диагноз, дата поступления (день: месяц: год), курс лечения. Данные хранить в виде записей в файле. Организовать поиск пациентов с заданной фамилией.

{Лабораторная работа №5 задача 2}

 

Program Lab_Rab_5_2;

Uses Crt;

Type Pacient = Record

FIO : string[30];

year : 1900..2005;

diag : string[20];

date : record

den : 1..31;

mes : 1..12;

god : 1900..2005;

end;

kurs : integer;

end;

var

Name_file : string;

Ch : char;

 

procedure Create( var Name_File : string);

var

f : file of Pacient;

A : Pacient;

i,n : integer;

begin

ClrScr;

Write('Введите имя файла :');

ReadLn(Name_File);

Assign(f,Name_File);

Rewrite(f);

Write('Введите количество записей :');

ReadLn(n);

if n>0 then

begin

For i :=1 to n do

begin

with A do

begin

Writeln('Введите данные ',i,'-го пациента');

write('Введите фамилию :');

Readln(FIO);

write('Введите год рождения :');

Readln(year);

write('Введите диагноз :');

Readln(diag);

writeln('Введите дату поступления :');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения :');

Readln(kurs);

end;

write(f,A)

end; ;

Writeln('Создан файл из ',n,' записей');

end

else Writeln('Создан пустой файл');

Close(f);

ReadKey;

end;

 

procedure Open( var Name_File : string);

var

f : file of Pacient;

begin

ClrScr;

Write('Введите имя файла :');

ReadLn(Name_File);

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

begin

writeln ('Нет файла с именем ', Name_File);

Name_File :='';

end

else

begin

writeln ('Файла с именем ', Name_File, ' открыт');

Close(f);

end;

ReadKey;

end;

 

procedure Add_Record( Name_File : string);

var

f : file of Pacient;

A : Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

writeln ('Нет файла с именем ', Name_File)

else

begin

Seek(f,FileSize(f));

with A do

begin

Writeln('Введите данные ',FileSize(f)+1,'-го пациента');

write('Введите фамилию :');

Readln(FIO);

write('Введите год рождения :');

Readln(year);

write('Введите диагноз :');

Readln(diag);

writeln('Введите дату поступления :');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения :');

Readln(kurs);

end;

write(f,A);

Writeln('Запись добавлена');

Close(f);

end;

ReadKey;

end;

 

procedure View( Name_File : string);

var

f : file of Pacient;

A : Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Содержимое файла : ', Name_File);

Writeln('Содержимое файла : ', Name_File);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления | Курс лечения |');

Writeln('___________________________________________________

while not Eof(f) do

begin

Read(f,A);

with A do

writeln(FIO : 10, Year : 10,Diag :10, Date.den : 8,

Date.mes:3 , date.god:5, kurs:13);

end;

Close(f);

end;

ReadKey;

end;

 

procedure Del( Name_File : string);

var

f,Temp : file of Pacient;

A : Pacient;

k,i : integer;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Файл ',Name_File, ' имеет ',FileSize(f), ' записей');

Write('Введите номер удаляемой записи №=');

ReadLn(k);

if (k<1) or (k>FileSize(f)) then Writeln('нет записи с №=',k)

else

begin

Assign(temp,'1.tmp');

Rewrite(temp);

For i:=1 to FileSize(f) do

begin

Read(f,A);

if i<>k then write(temp,A);

end;

Close(f); Close(temp);

Erase(f);

ReName(temp,Name_File);

Writeln('Запись удалена')

end;

end;

ReadKey;

end;

 

procedure Search( Name_File : string);

var

f : file of Pacient;

A : Pacient;

Fam : String[30];

Poisk : boolean;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Write('Введите фамилию пациента : ');

ReadLn(Fam);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления| Курс лечения |’);

Writeln('___________________________________________________

Poisk := False;

while not Eof(f) do

begin

Read(f,A);

with A do

if Fio = Fam then

begin

writeln(FIO : 10, Year : 10,Diag :10, Date.den : 8,

Date.mes:3 , date.god:5, kurs:13);

Poisk := true

end;

end;

Close(f);

If not Poisk then writeln('Нет пациентов с фамилией ',Fam);

end;

ReadKey;

end;

 

Begin

Name_File :='';

repeat

ClrScr;

Writeln('1-Создать файл');

Writeln('2-Открыть файл');

Writeln('3-Просмотр данных');

Writeln('4-Добавить данные');

Writeln('5-Удалить данные');

Writeln('6-Поиск данных ');

Writeln('7-Выход ');

Writeln;

Write('Выберите пункт меню ');

ReadLn(Ch);

Case Ch of

'1' : Create(Name_File);

'2' : Open(Name_File);

'3' : if Name_File <> '' then View(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'4': if Name_File <> '' then Add_Record(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'5': if Name_File <> '' then Del(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'6': if Name_File <> '' then Search(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

end;

until Ch = '7';

End.


Список рекомендуемой литературы

 

1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. М., Нолидж, 1997.

2. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. М., Нолидж, 1997.

3. Немнюгин С.А. Турбо Паскаль. Учебник для ВУЗов. М., Питер 2003.

4. Немнюгин С.А. Турбо Паскаль. Практикум. М., Питер 2003.

5. Абрамов А.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. М., Наука, 1988.

6. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0. М., Диалог-Мифи, 1993.

7. Пильщиков В.Н. Сборник упражнений по языку Паскаль. М., Наука, 1989.

8. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль (версия 5.5). Изд-во МАИ, 1992.

9. Шень А. Программирование: Теоремы и задачи. М., МЦНМО, 1995.


Учебное издание

 

Аншакова Наталия Владимировна

Беляева Марина Борисовна

Базовые конструкции и стандартные типы данных в Паскале (Turbo Pascal 7.0. Начальный курс. Практикум.)

Учебное пособие

 

Зав. редакцией

Вед. редактор

Корректор

Компьютерный набор и верстка М.Б. Беляевой

 

 

Лицензия на издательскую деятельность

 

Подписано в набор Подписано в печать

Подписано в свет Формат 60х841/16 Печать оперативная.

Гарнитура «Times New Roman». Бумага офсетная. Уч.-изд.л.. Усл.-печ.л.

Цена договорная. Тираж Заказ №

 

 

Редакционно-издательский отдел

Башкирского государственного университета

450074, РБ, г. Уфа, ул.Фрунзе, 32.

Отпечатано на множительном участке

Башкирского государственного университета

450074, РБ, г. Уфа, ул.Фрунзе, 32.

– Конец работы –

Используемые теги: базовые, конструкции, Стандартные, типы, данных, Паскале0.079

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Базовые конструкции и стандартные типы данных в Паскале

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Реляционные Базы Данных. SQL - стандартный язык реляционных баз данных
В компьютере, например, можно хранить фамилии и адреса друзей или клиентов. Один из типов баз данных - это документы, набранные с помощью текстовых… Другой тип - файлы электронных таблиц, объединяемые в группы по характеру их использования.

Общее понятие о базах данных. Основные понятия систем управления базами данных. Модели данных. 10
Сетевые технологии обработки данных Компоненты вычислительных сетей... Принципы организации и основные топологии вычислительных сетей Принципы... Сетевой сервис и сетевые стандарты Средства использования сетевых сервисов...

КУРС ЛЕКЦИЙ ПО ИНФОРМАТИКЕ Тема: Базы данных, Банки Данных, Системы Управления Базами Данных — СУБД
ГОУ ВПО ВОЛОГОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Факультет промышленного менеджмента...

Компьютерные данные: типы данных, обработка и управление
Реляционная модель данных. 5 Заключение: Порядок выполнения практической работы 1. Компьютерные данные: типы данных, обработка и управление… Точность - это способность выполнить задачи без погрешностей или ошибок. Данную характеристику можно трактовать еще и так: - это степень соответствия меры к определенному стандарту.…

База данных должна содержать следующие элементы данных
Спроектировать базу данных... Для Excel... подготовить таблицу и заполнить ее данными с использованием стандартной формы по тематике задания не менее строк...

Использование электронной таблицы как базы данных. Сортировка и фильтрация данных в Microsoft Excel 97
Существуют ограничения, накладываемые на структуру базы данных: • первый ряд базы данных должен содержать неповторяющиеся имена полей; • остальные… Сортировка - это упорядочение данных по возрастанию или по убыванию. Проще… Это средство отображает подмножество данных, не перемещая и не сортируя данные. При фильтрации базы отображаются…

Объекты базы данных. Язык определения данных
На сайте allrefs.net читайте: "Объекты базы данных. Язык определения данных"

Разработка сервера баз данных для ЛВС кампуса
Пользователями корпоративной сети являются только сотрудники данного предприятия. В отличие от сетей операторов связи, корпоративные сети, в общем случае, не… Например, локальные сети, объединяющие конечных пользователей, здесь включаются в состав корпоративной сети. Кроме…

База данных проката автомобилей
Задача - информационная поддержка деятельности пункта по прокату легковых автомобилей. БД должна осуществлять: &#61630; ведение списка автомобилей; &#61630;… Инфологическое проектирование Анализ предметной области База данных создается для информационной поддержки…

Тема: Работа с базой данных Access 2010
Тема Работа с базой данных Access... Цель работы Освоить порядок работы с базой данных Access... Задание к лабораторной работе...

0.03
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам
  • Разработка базы данных для решения задач предприятия по предметной области - Склад Накладную выписывает сторона, отдающая товар, доверенность - принимающая товар. Одна накладная и доверенность может сопровождать несколько товаров.В накладной… Выполняемые функции -учет движения товара -возможность выборки по критериям -информация об остатках на складе Создание…
  • Формирование базы данных тур.индустрии на примере г.Пушкин Высокая привлекательность Санкт-Петербурга как туристского центра обусловлена объективными факторами.Архитектурный ансамбль города и его… Этому, в частности, способствовала утрата городом столичного статуса, которая… Так же для развития индустрии туризма представляют интерес пригороды «Северной Венеции». Одним из самых…
  • Разработка и создание базы данных "Продовольственные товары" Такая система должна: • обеспечивать получение общих и/или детализированных отчетов по итогам работы; • позволять легко определять тенденции… Современные СУБД в основном являются приложениями Windows, так как данная… Общепринятыми, также, являются технологи, позволяющие использовать возможности других приложений, например, текстовых…
  • Задание 1.Ознакомьтесь с учебной базой данных компании Борей,входящей в комплект поставки Microsoft Access Цель работы Ознакомление с основными понятиями СУБД Access на примере учебной базы данных компании Борей Освоение технологии конструирования и... Задание Ознакомьтесь с учебной базой данных компании Борей входящей в... Технология...
  • Создание базы данных Упражнение Создание таблицы в режиме таблицы... Ввод данных в режиме таблицы очень похож на работу с электронной таблицей в... Запустите Microsoft Access выполнив команду Пуск Все программы Microsoft Office Microsoft...