русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ЗАДАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ


Дата добавления: 2015-06-12; просмотров: 1612; Нарушение авторских прав


Лабораторная работа №1. Тема – условные операторы - if, вложенные операторы if, оператор case.

Напишите программу, которая вводит с клавиатуры символ, определяющий площадь какой фигуры необходимо вычислить. «R» определяет прямоугольник, «T» – треугольник, «С» – круг. Выдать результат на экран, в случае ввода неправильного символа выдать сообщение об ошибке. Программа должна обеспечить возможность вычислять площади фигур, пока пользователь не решит из нее выйти (использовать оператор цикла). Программу представить в двух вариантах:

1) с использованием вложенных операторов if;

2) с использованием оператора варианта.

Лабораторная работа №2. Тема – вложенные операторы case.

Напишите программу перевода римских чисел в десятичные. Алгоритм перевода представлен в следующей таблице:

символ состоян. 'X' 'V' 'I'
n:=10; state:=2 n:=5; state:=3 n:=1; state:=6
n:=n+10; state:=2 n:=n+5; state:=3 n:=n+1; state:=6
ok:=false ok:=false n:=n+1; state:=4
ok:=false ok:=false n:=n+1; state:=5
ok:=false ok:=false n:=n+1; state:=7
n:=n+8; state:=7 n:=n+3; state:=7 n:=n+1; state:=5
ok:=false ok:=false ok:=false

 

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

Программа должна обрабатывать следующие типы ошибок пользователя:

1) введен неверный символ (отсутствует в алфавите программы);

2) символы введены в неправильном порядке.

Лабораторная работа №3. Тема – работа с массивами.

Напишите следующие программы работы с массивами:

1) Найти сумму элементов одномерного массива;

2) Найти произведение элементов одномерного массива;

3) Найти сумму элементов матрицы, расположенных на главной диагонали;



4) Найти сумму элементов матрицы, расположенных ниже главной диагонали;

5) Найти сумму элементов матрицы, расположенных выше главной диагонали;

6) Найти произведение элементов матрицы, расположенных на побочной диагонали;

7) Найти максимумы четных строк матрицы;

8) Найти минимумы нечетных столбцов матрицы;

9) Найти произведение двух матриц.

Лабораторная работа №4. Тема – работа с графикой, с мышью, использование перечислимых типов.

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

 

Лабораторная работа №5. Тема – работа с записями, с массивами записей, с графикой.

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

Лабораторная работа №6. Тема – работа с массивами записей.

В программе определить массив записей. Каждая запись хранит информацию о работнике фирмы: табельный номер, ФИО, оклад, должность, пол. Заполнить массив с клавиатуры. Затем программа должна уметь ответить на следующие вопросы: 1) посчитать фонд зарплаты фирмы; 2) посчитать количество женщин и количество мужчин, работающих в фирме; 3) посчитать фонд зарплаты отдельно для мужчин и отдельно для женщин.

Лабораторная работа №7. Тема – работа с записями с вариантами, графикой.

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

Лабораторная работа №8. Тема – работа с множествами, со строками.

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

1) Идентификатор – последовательность букв и цифр, начинающаяся с буквы;

2) Число – последовательность цифр;

3) Лексемы больше-равно, меньше-равно, присвоить ( >=, <=, :=).

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

Лабораторная работа №9. Тема – Работа с текстовыми файлами.

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

Лабораторная работа №10. Тема – работа с типизированными файлами, процедуры и функции.

Программу из лабораторной работы № 6 переделать – информацию о работнике фирмы хранить не в массиве, а в типизированном файле. Функциональность программы не изменилась. Для реализации запросов к информации файла использовать процедуры и функции. При написании процедур и функций продемонстрировать все способы передачи параметров – параметры переменные, параметры значения и параметры константы.

Лабораторная работа №11. Тема – работа с типизированными файлами

На экране нарисовать несколько заполненных областей. Информацию о каждой области – цвет, количество вершин, координаты вершин, тип заливки записать в нетипизированный файл. Каждая запись файла имеет фиксированный размер. Так как количество полигонов, и число их вершин – произвольны, то каждый раз запись хранит информацию о разном числе полигонов, при чем информация об одном полигоне может попасть в разные записи. Сохранить файл на диске. Восстановить содержимое экрана из файла.

Лабораторная работа №12. Тема – Нетипизированные параметры

Написать процедуру рисования полигона. Параметры: 1) адрес массива координат полигона (так как количество вершин каждый раз разное – параметр нетипизирован); 2) количество вершин полигона. В процедуре привести нетипизированный параметр к удобному для программиста типу и нарисовать полигон. Из основной программы обратиться к данной процедуре 3 раза, в качестве фактического параметра использовать различные структуры данных, хранящие координаты полигонов (например, массив записей, двумерный массив, одномерный массив).

Лабораторная работа №13. Тема – создание модулей.

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

Лабораторная работа №14. Тема – работа с процедурным типом.

Написать программу, в которой определить массив графических маркеров (координаты X, Y, цвет), заполнить его данными при помощи генератора случайных чисел. Для рисования маркеров определить 3 процедуры (например, звездочка, крестик, кружок). Указанные процедуры использовать следующим образом:

1-й вариант: Написать процедуру визуализации, в которую передать в качестве параметров: 1) массив маркеров; 2) процедуру для рисования маркера (использовать параметр процедурного типа);

2-й вариант: В массив маркеров в записи добавить поле процедурного типа. При инициализации ему присваивать значение одной из процедур рисования маркеров. В процедуру визуализации передавать только один параметр – массив маркеров.

Лабораторная работа №15. Тема – рекурсия, косвенная рекурсия.

1) Написать программу для определения четно или нет количество символов введенной строки, для этого использовать косвенную рекурсию. Переделать косвенную рекурсию в прямую. (См. лекцию по теме «Рекурсия»).

2) Написать программу, которая рисует на экране полигон (при помощи мыши), после указания точки внутри полигона, полигон закрашивается. Использовать рекурсивный алгоритм закраски.

Лабораторная работа №16. Тема – тестирование алгоритмов поиска.

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

Лабораторная работа №17. Тема – тестирование алгоритмов сортировки.

Создать модуль, в который включить все изученные алгоритмы сортировки. Измерить время работы каждого алгоритма в различных условиях – 1) сортируемый массив имеет сравнительно небольшие размеры и 2) сравнительно большие размеры. Для каждого варианта проанализировать еще три ситуации: 1) массив почти упорядочен; 2) массив почти упорядочен в обратном порядке; 3) массив заполнен случайными значениями. Результаты представить при помощи диаграмм в программе Excel.

Лабораторная работа №18. Тема – работа со связанными списками.

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

1) создать маркер;

2) удалить маркер;

3) переместить маркер;

4) перерисовать все;

5) удалить все маркеры;

6) выход.

Кроме того, на экране появляется меню для выбора типа маркера (*, +, о), а также меню для выбора цвета – палитра. Активный пункт каждого меню выделяется красным цветом. Каждый маркер при создании помещается в связанный список. Выполнение каждой команды сопровождается соответствующей операцией со списком.

Лабораторная работа №19. Тема – работа с двусвязанными кольцами.

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

1) создать ломаную линию;

2) удалить ломаную линию;

3) добавить точку в ломаную линию;

4) переместить точку в ломаной линии;

5) удалить точку в ломаной линии;

6) перерисовать все;

7) удалить все ломаные линии;

8) выход.

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

Лабораторная работа №20. Тема – работа с двоичными деревьями поиска.

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

2) Написать программу для регистрации участников семинара. Информация о каждом участнике – город, фамилия, организация. После регистрации информацию выдать на экран следующим образом: распечатать список городов по алфавиту и для каждого города список участников по алфавиту (названия городов поместить в двоичное дерево поиска, и в каждом его узле хранить ссылку на его двоичное дерево участников).

Лабораторная работа №21. Тема – создание объектно-ориентированных программ

Написать программу, в которой определить массив указателей на динамические объекты. Объекты – снежинки мерцающие и снежинки падающие. Они являются наследниками класса «снежинка». После инициализации визуализировать массив – для каждого его элемента вызвать виртуальный метод «проявить визуальный эффект».

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Для чего предназначена интегрированная среда Turbo Pascal.

2. Назовите виды операторов Turbo Pascal.

3. Как работает условный оператор?

4. В каких случаях используется оператор варианта?

5. Для чего необходимы операторы цикла?

6. Назовите особенности оператора цикла с параметром.

7. Назовите особенности оператора цикла с предусловием.

8. Назовите особенности оператора цикла с постусловием.

9. В каких случаях следует применять тот или иной оператор цикла?

10. Приведите классификацию типов Turbo Pascal

11. Расскажите о простых типах Turbo Pascal.

12. Расскажите о стандартных простых типах Turbo Pascal?

13. Назовите особенности скалярных типов Turbo Pascal.

14. Какие операции допустимы над переменными логического типа?

15. Каковы особенности массивого типа?

16. Каковы особенности записного типа?

17. Расскажите об операторе присоединения.

18. Расскажите об операторе о записях с вариантами.

19. Расскажите о множествах (определения, примеры, операции).

20. Расскажите о представление множеств.

21. Назовите особенности файловых типов.

22. Расскажите об операциях над файлами.

23. Расскажите об операциях над текстовыми файлами.

24. Расскажите о типизированных файлах.

25. Расскажите о нетипизированных файлах.

26. Что такое процедуры и функции?

27. Что такое описание процедуры, оператор процедуры?

28. Что такое локальные и глобальные переменные?

29. Что такое параметры?

30. Что такое фактические и формальные параметры?

31. Что такое параметры-значения?

32. Что такое параметры-переменные?

33. Что такое параметры-константы?

34. Расскажите о процедурном типе, о передаче процедур и функций в качестве параметра.

35. Назовите директивы, используемые при описании процедур и функций.

36. Расскажите о необходимости и преимуществах использования модульного программирования.

37. Какова структура модуля в языке Pascal?

38. Что такое рекурсия?

39. Сравните рекурсию и итерацию.

40. Поясните особенности алгоритма линейного поиска.

41. Поясните особенности алгоритма поиска делением пополам (двоичного поиска).

42. Что такое сортировка?

43. Поясните особенности алгоритма сортировка простыми включениями.

44. Поясните особенности алгоритма сортировки бинарными включениями.

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

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

47. Поясните особенности алгоритма сортировки Шейкер-сортировка.

48. Поясните особенности алгоритма сортировки включениями с убывающими приращениями (сортировка Шелла).

49. Поясните особенности алгоритма сортировки с разделением (быстрая сортировка).

50. Что такое ссылочные типы?

51. Расскажите о динамических структурах данных.

52. Как происходит создание и уничтожение динамических переменных?

53. Что такое связанные списки?

54. Поясните процессы создания очередного элемента связанного списка и просмотра списка.

55. Как добавить компоненту в середину списка?

56. Как исключить компоненту из середины списка?

57. Как происходит рекурсивная обработка списка?

58. Что такое двусвязные кольца?

59. Что такое деревья?

60. Что такое двоичные деревья?

61. Дайте определение двоичного дерева поиска.

62. Как добавить узел к двоичному дереву поиска?

63. Расскажите о поиске в двоичном дереве.

64. Расскажите о просмотре двоичного дерева.

65. Поясните алгоритм удаления из двоичного дерева поиска.

66. Расскажите о деревьях общего вида.

67. Назовите основные концепции ООП.

68. Что такое абстрактные типы данных?

69. Что такое инкапсуляция?

70. Что такое наследование?

71. Что такое полиморфизм?

72. Что такое позднее связывание?

73. Объясните механизм работы виртуальных методов.

74. Что такое конструкторы и деструкторы?

 



<== предыдущая лекция | следующая лекция ==>
ДИНАМИЧЕСКИЕ ОБЪЕКТЫ | Научный редактор


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

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


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.471 сек.