Основы алгоритмизации и программирования: методические указания для лабораторных работ
методическая разработка на тему

Данные методические указания для проведения лабораторных работ по дисциплине «Основы алгоритмизации и программирования» предназначены для реализации государственных требований к минимуму содержания и уровню подготовки выпускников специальности 230106 «Техническое обслуживание средств вычислительной техники и компьютерных сетей»с целью закрепления теоретических знаний и практических умений.

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

При выполнении лабораторных работ студент должен

знать:

  • алфавит и лексику языка;
  • типы данных языка программирования;
  • правила записи выражений и операций.
  • операторы ввода-вывода, ветвления, цикла;
  • синтаксис объявления массива, строк, множеств, выполняемые операции с массивами, строками, множествами, стандартные функции для работы с массивами, со строками;
  • синтаксис объявления процедур и функций;
  • синтаксис объявления файла, порядок работы с файлами различного типа;
  • назначение библиотек подпрограмм;

уметь:                                                

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

 

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

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

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

Скачать:

ВложениеРазмер
Microsoft Office document icon oaip.doc323 КБ

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

Федеральное государственное образовательное учреждение

среднего профессионального образования

«Арзамасский приборостроительный колледж им. П.И. Пландина»

Солдатова С.И.                          

ОСНОВЫ АЛГОРИТМИЗАЦИИ

И ПРОГРАММИРОВАНИЯ

Методические указания для проведения

лабораторных работ

для студентов специальности 230106 «Техническое обслуживание средств вычислительной техники и компьютерных сетей»

Арзамас

2010

ВВЕДЕНИЕ

Данные методические указания для проведения лабораторных работ по дисциплине «Основы алгоритмизации и программирования» предназначены для реализации государственных требований к минимуму содержания и уровню подготовки выпускников специальности 230106 «Техническое обслуживание средств вычислительной техники и компьютерных сетей» с целью закрепления теоретических знаний и практических умений 

В сборнике содержатся методические указания по выполнению 18 лабораторных работ в интегрированной системе программирования Turbo Pascal.

При выполнении лабораторных работ студент должен

знать:

алфавит и лексику языка;

типы данных языка программирования;

правила записи выражений и операций.

операторы ввода-вывода, ветвления, цикла;

синтаксис объявления массива, строк, множеств, выполняемые операции с массивами, строками, множествами, стандартные функции для работы с массивами, со строками;

синтаксис объявления процедур и функций;

синтаксис объявления файла, порядок работы с файлами различного типа;

назначение библиотек подпрограмм;

уметь:        

составлять программы линейной структуры;

составлять программы с ветвлениями;

составлять циклические программы;

осуществлять ввод и вывод массивов, сравнивать массивы;

выполнять операции со строками и над множествами;

применять стандартные функции для работы с массивами и строками;

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

работать с файлами разных типов;

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

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

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

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


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

Программирование линейных алгоритмов

Цель: Ознакомиться с системой программирования Turbo Pascal, получить основные навыки работы с ней, освоить приёмы создания, компиляции и исполнения программы, научиться создавать программы для решения линейных задач.

Теоретические сведения:

Работа в системе программирования Turbo Pascal:

Активация меню: Клавиша (щелчок левой кнопкой мыши на нужном пункте меню)

Ввод текста: текст вводится на английском языке. После ввода каждой строки нажимается клавиша Enter. Смена алфавита: на русский язык - +(справа), на английский язык - +(слева)

Компиляция: меню Compile, команда Compile  (клавиши +)

Запуск программы: меню Run, команда Run (клавиши +)

Открытие нового окна: Каждая программа создается в новом окне. Чтобы открыть новое окно, выберите меню File, команду New

Переключение между окнами: Клавиши +<номер окна>

Открытие сохраненной программы: меню File, команда Open (клавиша). В открывшемся окне диалога в поле «Имя» введите полное имя нужного файла. Выберите команду Open.

Выход из программы: меню File, команда Exit (клавиши +).

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

Program Primer;

Var A, B, S, R, P: integer;

       Ch: real;

Begin

     Writeln(‘Введите два целых числа‘);

     Readln(A, B);

     S:=A+B;

     R:=A-B;

     P:=A*B;

     Ch:=A/B;

     Writeln(‘Сумма чисел‘, A, ’и’, B, ’равна’, S);

     Writeln(‘Разность чисел‘, A, ’и’, B, ’равна’, R);

     Writeln(‘Произведение чисел‘, A, ’и’, B, ’равно’, P);

     Writeln(‘Частное чисел‘, A, ’и’, B, ’равно’, Ch);

     Readln;

End.

Откомпилируйте программу.

Запустите программу и проверьте правильность решения задачи на числах:

                       20 и 5;                  36,6 и 6.

Исправьте ошибку ввода данных, введя числа 36 и 6. Замените операторы Writeln и Readln на Write и Read.

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

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

№1 -a3c+b-2 ;      №2  *  -   ;        №3 x arctg xy ;

№4  -    ;        №5 3 – 4x + (y - );         №6 x -  +  ;

№7 ln| (y - )(x - );     №8 ex – x – 2 + (1 + x)2  ;      №9 ;

№10   ;     №11 ex - ;            №12   ;

№13 +16xcos(xy) –2; №14 sin- sin; №15 x - ln x +   .    

Составьте программу решения задачи:

Вычислить корни квадратного уравнения ах2 + bх + с = 0, заданного коэффициентами a, b и с (предполагается, что а ≠ 0).

Составьте программу решения задачи:

Дано трёхзначное число. Поменять местами вторую и третью его цифры.

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

Составьте программу решения задачи:

Дана длина окружности. Найти площадь круга, ограниченного этой окружностью.

Откомпилируйте программу.    

Составьте программу решения задачи: Найти площадь кольца, внутренний радиус которого R1, а внешний R2 (R1< R2).

Откомпилируйте программу. Используя составленную программу, вычислите площадь кольца, внутренний радиус которого – 16 см, а внешний – 25 см.

Запишите полученные результаты в тетрадь.

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

Выйдите из программы Turbo Pascal.


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

Программирование разветвляющихся алгоритмов

Цель: научиться составлять программы для решения задач, содержащих условия, продолжить освоение работы в системе программирования Turbo Pascal.

Теоретические сведения:

Условный оператор используется для выполнения одного из двух возможных вариантов программы.

Формат записи команды ветвления:

if  логическое_условие                         если логическое_условие верно

           then оператор_1                         то выполняется оператор_1 ,

           else оператор_2;                         иначе оператор_2;

Перед else точка с запятой не ставится!

Формат полного оператора ветвления:                 Формат неполного оператора ветвления:
if <логическое выражение>                        if <логическое выражение>

 then <оператор 1>                                   then <оператор>;

 else <оператор 2>;

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

Простой формой логического выражения является операция отношения:

 <                меньше,

 >                больше,

 <=                меньше или равно,

 >=                больше или равно,

 =                равно,

 <>                не равно.

Сложные формы логических выражений составляются с использованием логических операций:

 not                  логическое      отрицание    (НЕ),

 and                  логическое      умножение    (И),

 or                   логическое      сложение    (ИЛИ),

 xor                исключающее  ИЛИ

Порядок действий:  Отрицание, умножение, сложение, операции отношений.

Операторные скобки:        

Если после слов then или else нужно выполнить не один оператор, а несколько, то эти операторы заключают в операторные скобки: begin … end

Конструкция такого вида:         Begin   <последовательность операторов>  end о тносится к составным операторам.

Операторы ветвления могут быть вложены друг в друга, необходимо только следить за тем, чтобы then и else одного и того же оператора располагались друг под другом.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Составьте программу решения задачи: Дано целое число. Если оно является положительным, то прибавить к нему 1, в противном случае вычесть из него два. Вывести полученное число.

Составьте программу решения задачи: Даны три стороны одного треугольника и три стороны другого треугольника. Определить, будут ли эти треугольники равновеликими, то есть имеют ли они равные площади.

Составьте программу решения задачи: Ввести два числа. Меньшее заменить полусуммой, а большее – удвоенным произведением.

Составьте программу решения задачи: Вычислить значение У при значении Х=:

Составьте программу решения задачи: Даны целые числа a и b. Определить, является ли число a делителем числа b.

Откомпилируйте программу. Используя составленную программу, определите, является ли число 43 делителем числа 553, а число 56 делителем числа 672.

Запишите полученные результаты в тетрадь.

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

Выйдите из программы Turbo Pascal.


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

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

Цель: научиться составлять программы с использование оператора множественного выбора Case, продолжить освоение работы в системе программирования Turbo Pascal.

Теоретические сведения:

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

Общий вид:

case <ключ выбора> of

         <список 1>: <оператор 1>;

         <список 2>: <оператор 2>;

                       . . .

         <список N>: <оператор N>

      else <оператор>

end;

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

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

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

Составьте программу решения задачи: Для целого числа и от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год.

Составьте программу решения задачи: Введите номер дня и месяца. Определите, сколько дней осталось до Нового года.

Запишите полученные результаты в тетрадь.

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


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

Программирование циклических алгоритмов: цикл с параметром.

Цель: закрепить практические навыки работы с системой Turbo Pascal, научиться правильно использовать оператор цикла с параметром; научиться составлять программы решения задач с использованием циклических структур.

Теоретические сведения:

Для реализации в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов. Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to; если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так:
    for I:=I
0 to In do
      begin
        <оператор 1>;
        <оператор 2>;
        ...
        <оператор n>;
      end;                   где I
0 и In – начальное и конечное значения.

Порядок выполнения работы:

Составьте программу, выводящую на экран квадраты и кубы чисел от 10 до 20.

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

Составьте программу решения задачи: Найти значение выражения 5x9+13x7-2x11, используя оператор цикла с параметром.

Составьте программу, выводящую на экран таблицу умножения чисел от 1 до 9.

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

Составьте программу решения задачи:  Дано натуральное число n. Вычислить

S=1!+2!+3!+4!+…+n! (n>1).

Составьте программу решения задачи: Сколько можно купить ручек, тетрадей и карандашей, платя за ручку 5 рублей, за тетрадь – 10 рублей, за карандаш – 0,5 рублей, если на 100 рублей нужно купить 100 предметов. Откомпилируйте программу. Проверьте правильность решения задачи.

Запишите полученные результаты в тетрадь. 

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

Выйдите из программы Turbo Pascal.


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

Программирование циклических алгоритмов: цикл с предусловием.

Цель: закрепить практические навыки работы с системой Turbo Pascal, научиться правильно использовать операторы цикла с условием; научиться составлять программы решения задач с использованием циклических структур.

Теоретические сведения:

Цикл с предусловием. 
Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.
В общем виде цикл реализуется записью:
    while <условие> do <действие>;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
    while <условие> do
    begin
      <оператор 1>;
      <оператор 2>;
      ...
      <оператор n>;
    end;

Порядок выполнения работы:

Составьте программу решения задачи:  Дано натуральное число n. Вычислить S=1!+2!+3!+4!+…+n! (n>1).Откомпилируйте программу. Проверьте правильность решения задачи на конкретном примере.

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

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

Составьте программу решения задачи: Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить сколько амёб будет через 3, 6, 9, 12, 15, 18, 21,24 часа. Откомпилируйте программу. Проверьте правильность решения задачи.

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

Выйдите из программы Turbo Pascal.


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

Программирование циклических алгоритмов: цикл с постусловием.

Цель: закрепить практические навыки работы с системой Turbo Pascal, научиться правильно использовать операторы цикла с условием; научиться составлять программы решения задач с использованием циклических структур.

Теоретические сведения:

Цикл с постусловием. 
Для реализации цикла используется составной оператор, состоящий из операторов repeat и until. В общем виде цикл записывается так:
    repeat
      <действие>;
    until <условие>;

Порядок выполнения работы:

Составьте программу решения задачи: В банк положили 1000 рублей под проценты. Каждый месяц сумма увеличивается на 5% от суммы предыдущего месяца. Через сколько месяцев сумма на счету достигнет 2000 рублей? Откомпилируйте программу. Проверьте правильность решения задачи на конкретном примере.

Составьте программу решения задачи: Введите целое число и определите количество цифр в нем.  Откомпилируйте программу. Проверьте правильность решения задачи.

 Составьте программу решения задачи:  Найти среднее арифметическое натуральных чисел, меньших 200 и кратных 7.Откомпилируйте программу. Проверьте правильность решения задачи.

Составьте программу решения задачи: Найти все трехзначные числа, средняя цифра которых равна сумме первой и последней. Откомпилируйте программу. Проверьте правильность решения задачи.

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

Выйдите из программы Turbo Pascal.


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

Обработка одномерных и двумерных массивов.

Цель: научиться описывать, заполнять, выводить и обрабатывать одномерные и двумерные массивы.

Теоретические сведения:

Массив – группа элементов одного типа, объединенных под общим именем.

Описание массивов

Массивы описываются в разделе описания переменных Var.

Общий вид описания одномерного массива:

<имя массива>: array [<начальный индекс>..<конечный индекс>] of <тип элемента>;

где имя - имя переменной-массива; array - ключевое слово, обозначающее, что переменная является массивом;  нижний_индекс и верхний_индекс - целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива; тип - тип элементов массива.

Общий вид описания двумерного массива:

<имя массива>:array[1>..2>,1>..2>] of <тип>;

где Имя - имя массива; array - слово языка Pascal, показывающее, что описываемый элемент данных - массив; m1, m2, n1, n2- константы или выражения типа INTEGER, определяющие диапазон изменения индексов и, следовательно, число элементов массива; Тип - тип элементов массива.

Заполнение массива

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

с клавиатуры: For i:=1 to n do readln(a[i]);

через датчик случайных чисел: Randomize; For i:=1 to n do begin  а[i]:=random(i);  

Если требуется, чтобы значения элементов массива выбирались из определенного интервала [a,b], то a+Random(b-a+1);

через оператор присваивания (по формуле): For i:=1 to n do а[i]:=i*3;

Вывод массива

Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию FOR, переменная-счётчик которой может быть реализована как индекс элемента массива. Например, For i:=1 to n do writeln(a[i]);

Удаление элементов из одномерного массива.

Для того, чтобы удалить из массива k-ый элемент нужно: найти номер элемента k; сдвинуть все элементы, начиная с k-го, на один элемент влево; последнему элементу присвоить значение, равное 0; уменьшить количество элементов массива на единицу.

Вставка элемента в одномерный массив.

Вставлять элемент можно до или после данного элемента, номер этого элемента можно вводить с клавиатуры или искать при определенных условиях. Пусть k - это номер элемента, после которого мы должны вставить элемент х. Тогда вставка осуществляется следующим образом: первые k элементов массива остаются без изменения, все элементы, начиная с (k+1)-го, необходимо сдвинуть на один назад, на место (k+1)-го элемента записываем значение х; увеличить количество элементов в массиве на единицу.

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

For i:=1 to m do begin

изменяется номер строки

For j:=1 to n do begin изменяется номер столбца

Запись элемента массива: а[i , j]

Главная диагональ

i = j

Побочная диагональ

i + j = n+1

а11 

а12 

а13 

а14 

а21 

а22 

а23 

а24 

а31 

а32 

а33 

а34 

а41 

а42 

а43 

а44 

а11 

а12 

а13 

а14 

а21 

а22 

а23 

а24 

а31 

а32 

а33 

а34 

а41 

а42 

а43 

а44 

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Ввести одномерный массив, состоящий из 10 элементов. Заменить отрицательные элементы на противоположные по знаку. Вывести полученный массив на экран.

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

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

Ввести одномерный массив, состоящий из п элементов. Удалите из массива третий элемент. 

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

Ввести двумерный массив, состоящую из n*m элементов. Найдите сумму всех элементов. 

Заполните двумерный массив размером N*N следующим образом:

0 1 1 1 1 0

2 0 1 1 0 4

2 2 0 0 4 4

2 2 0 0 4 4

2 0 3 3 0 4

0 3 3 3 3 0.

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

                

Выйдите из программы Turbo Pascal.


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

Сортировка массивов. Поиск элемента массива.

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

Теоретические сведения:

Алгоритмы поиска элемента массива.  

Пусть значения элементов линейного массива x сформированы. Требуется среди чисел x[1], x[2], …, x[n] найти такое, что x[j] = max(x[1], x[2], …, x[n]). Если в задаче требуется найти порядковый номер этого элемента, то значит необходимо найти еще и значение индекса j.  Основная идея алгоритма состоит в том, что переменной max присваивается значение любого элемента массива (чаще всего первого по порядку). В случае нахождения порядкового номера переменной ind присваивается значение индекса этого элемента (т.е. 1).  

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

Методы сортировки массивов.

1. Метод «пузырька»  

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

2. Метод простых обменов.  

Идея метода:  весь массив просматривается несколько раз и при каждом просмотре ищется минимальный по значению элемент, который меняется местами с первым, вторым, третьим, …, предпоследним элементов массива и исключается из дальнейшего рассмотрения.

3. Метод вставки и сдвига.  

Идея метода:  делается предположение, что первые q элементов массива упорядочены, и если q+1-ый элемент меньше, чем какой-либо из первых q, то он записывается на свое место среди упорядоченных, при этом «хвост» массива «сдвигается» к концу.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Введите массив из 10 целых чисел. Найдите элемент с минимальным значением.

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

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

Выйдите из программы Turbo Pascal.


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

Работа со строковым типом данных.

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

Теоретические сведения:

Строка – последовательность символов. В языке Pascal для строк отведен свой тип данных: string. String – строка размером 255 символов. String[n] – строка размером n символов, где n должно быть больше нуля и меньше или равно 255.

Так же мы можем и вручную присваивать переменной строкового типа значения через оператор присваивания: Stroka:=’строка’;

Таким образом, мы присвоили переменной stroka значение «строка», которое находится между апострофами.

Для переменных строкового типа предусмотрены некоторые функции и процедуры:
Функция                                Действие                                        Пример


Length(s)                                Длина строки s                        Len:=Length(stroka);


Copy(s, start, finish)                Копирует часть строки s                                S2:=Copy(s1, 3, 5);

с позиции start до

позиции finish


Delete(s, start, finish)                Удаляет из строки символы                Delete(s1, 4, 6);

с позиции start до позиции

Finish


Insert(s, s1, posit)                Вставляет в строку s                                    Insert(s1,s2, 2);

строку s1 в позицию posit

Pos(sub, s)                        Позиция подстроки sub в                             N:=Pos(‘asd’, s1);

строке s. В случае, если

строка не содержит данной

подстроки, то функция

возвращает значение 0.

Str(x, s)                        Преобразует числовое значение                Str(124, s1);

х в строковое s

Val(s, x, error)                Преобразует строку s в                                 Val(s1,123.22,error_code);

числовое значение x.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

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

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

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

Откомпилируйте программу. Проверьте правильность решения на конкретном примере.

Составьте программу решения задачи:  Введённую с клавиатуры строку А записать в обратном порядке в строку В. Строку В вывести на экран. Откомпилируйте программу. Проверьте правильность решения задачи на конкретном примере.

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

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

Выйдите из программы Turbo Pascal.


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

Работа с множественным типом данных.

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

Теоретические сведения:

В языке Паскаль типом-множеством называется множество различных сочетаний элементов исходного (базового) типа. Число элементов исходного множества в Turbo-Pascal не может быть больше 256, а порядковые номера элементов должны находиться в пределах от 0 до 255.

Для объявления типа-множества используются зарезервированные слова set of, после которых указываются элементы этого множества, как правило в виде перечисления или диапазона. Объявить тип-множество можно в разделе программы Type или при объявлении переменной в разделе Var. Например:

Type

Lat=set of 'A'..'Z';        {множество прописных латинских букв}

Oper=set of (Plus, Minus, Mult, Divide) {множество знаков арифметических операций}

Chisla=set of 12..27;        {множество чисел от 12 до 27}

Digit=set of '0'..'9';        {множество символов-цифр}

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

Var         l: Lat; c1,c2: chisla; op: Oper; d: Digit;

g: set of  ('а', 'я', 'о', 'ё', 'у', 'ю', 'э', 'е', 'ы', 'и' );

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

Для множеств определены следующие операции.

+                объединение множеств;

-             разность множеств;

*                пересечение множеств;

=                проверка эквивалентности двух множеств;

<>        проверка неэквивалентности двух множеств;

<=        проверка, является ли левое множество подмножеством правого;

>=        проверка, является ли правое множество подмножеством левого;

in        проверка принадлежности элемента множеству.

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

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Составьте программу решения задачи: Вычислить значения отношений:

А) [2]<>[2, 2, 2];    Б) [4, 5, 6]=[5, 4, 6];    В) [2, 3, 5, 7]<=[1..9];   Г) [3, 6..8]>=[2..7, 9]

Составьте программу решения задачи: Вычислить значения выражений:

А) [1, 3, 5]+[2, 4];    Б) [1, 3, 5]*[2, 4];      В) [1, 3, 5]-[2, 4];    Г) [1..8]-[3..6]

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

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

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

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

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

Выйдите из программы Turbo Pascal.


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

Организация процедур

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

Теоретические сведения:

        В языке Паскаль имеется два вида подпрограмм - процедуры и функции.

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

        Формат описания процедуры имеет вид:

procedure имя процедуры (формальные параметры);

  раздел описаний процедуры

begin

  исполняемая часть процедуры

end;

        Вызов процедуры производится оператором, имеющим следующий формат:

имя  процедуры (список фактических параметров);

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

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

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

Найти площадь десятиугольника, вершины которого имеют координаты(x1,y1), (x2,y2) , (x3,y3) … (x10,y10).

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

Вычислить разность двух простых дробей: a/b-c/d (a, b, с, d — натуральные числа). Результат получить в виде простой несократимой дроби e/f.

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

Вычислить

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

Дан одномерный массив, состоящий из 10 элементов. Используя процедуру, найдите максимальный и минимальный элементы этого массива.

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

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

Выйдите из программы Turbo Pascal.


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

Организация функций

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

Теоретические сведения:

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

Fипсtiоп<имя>(<Параметры>): <Тип_возвращаемого_значения>;

<описания_переменных>;

Begin

<Тело подпрограммы>;

End;

Как и у процедуры, заголовок функции обязателен.

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

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Определить значение выражения т (а,b, с) +т (b, с, d) +m (с, d, а) для вещественных   а,b,с,d, где m(x,y,z) - функция определения минимального из   трёх чисел.
Откомпилируйте программу. Проверьте правильность решения задачи.

Составить программу нахождения выражения х10 +2х9 -5х7 +4, используя функцию.
Откомпилируйте программу. Проверьте правильность решения задачи на любом примере.

4)        Даны три квадратных уравнения ах2 +bx+c, dx2 +ex+f, px2 +qx+s. Сколько из них
имеют вещественные корни?

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

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

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

Выйдите из программы Turbo Pascal.


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

Использование рекурсивных подпрограмм.

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

Теоретические сведения:

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

В Паскале возможно применения рекурсии в процедурах и функциях.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Составить программу нахождения факториала, используя рекурсивную функцию.
Откомпилируйте программу. Проверьте правильность решения задачи. {Подсказка: Факториал an=n! означает n!=1*2*3*4*5*б*...*n. а)а1=1; б) аn=n*аn-1}

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

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

{Подсказка: Геометрическая прогрессия: а) а10; б) аnn-1*q. При а0=2, q=2 имеем степенной ряд 2,4,8,16,32,...; }

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

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

{Подсказка: Арифметическая прогрессия: а)а10;  б) аnn-1+d. При а0=1, d=1 имеем натуральный ряд 1,2,3,... }

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

{Подсказка: Числа Фибоначчи. Один из наиболее ярких примеров применения рекурсии дают числа Фибоначчи. Они определяются следующим образом: x1=x2=1 , xn=xn-1+xn-2 при n > 2  

Каждый элемент ряда Фибоначчи является суммой двух предшествующих элементов, т.е.

1, 1, 2, 3, 5, 8, 13, 21, 34, 55,… }

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

Выйдите из программы Turbo Pascal.


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

Использование процедур и функций: графические возможности.

Цель: научиться работать в графическом режиме программы Turbo Pascal.

Теоретические сведения:

Система программирования Turbo Pascal снабжена несколькими модулями или «библиотеками»,  в которых хранятся все её процедуры и функции.

Библиотека, содержащая процедуры и функции для поддержки графического режима носит имя GRAPH.TPU.

Для того, чтобы компилятор «узнавал» названия процедур и функций, содержащихся в библиотеке GRAPH.TPU, необходимо после заголовка программы разместить строчку следующего вида: Uses Graph;

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

Для включения графического режима используется процедура InitGraph(Gd, Gm: integer; Path: string) три параметра: Gd является кодом графического адаптера, позволяющего использовать несколько графических режимов, отличающихся количеством цветов и разрешающей способностью,  Gm предназначен для того, чтобы указать какой из режимов следует включить, Path является строкой, содержащей путь к файлу, в котором содержится драйвер, необходимый для работы мониторов в графическом режиме.

CloseGraph – выключение графического режима.

Для того, чтобы можно было нарисовать что-то на экране, нужно уметь задавать положение этой фигуры. Для этого с экраном связывается система координат. Точка (0,0) находится в левом верхнем углу.

Описание некоторых графических процедур и функций

Line(x1,y1,x2,y2: integer) – рисует на экране отрезок, соединяющий точки (x1,y1) и (x2,y2).

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

SetColor(Color: word) – нужно указать число, являющееся кодом цвета (0..15).

SetBkColor(Color: word) – устанавливает текущий цвет фона;

PutPixel(x,y: integer; Pixel:word) – рисует точку с координатами (x,y) и цветом Pixel.

Rectangle(x1,y1,x2,y2: integer) – строит контур прямоугольника из линий текущего цвета.

Circle(x,y: integer; r:word) – строит окружность с центром в точке (x,y) и радиусом r.

Arc(x,y: integer; StA,EndA,Radius:word) – рисует дугу окружности текущим цветом в центром в точке (x,y) и радиусом Radius, где StA,EndA – начальный и конечный угол в градусах.

Ellipse (x,y: integer; StA,EndA:word; xr,yr:word) – рисует дугу эллипса текущим цветом в центром в точке (x,y), где StA,EndA – начальный и конечный угол в градусах, xr,yr – горизонтальная и вертикальная полуоси эллипса.

SetLineStyle(Ln, P, T) – изменение параметров линий, где Ln – стиль линии (0- сплошная, 1 – пунктирная, 2 – штрихпунктирная, 3 – штриховая), T – толщина линии (1-нормальная, 3- толстая), P – шаблон.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

Нарисуйте олимпийский флаг. 

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

Изобразите год вашего рождения и инициалы.

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

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

 

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

Выйдите из программы Turbo Pascal.


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

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

Цель: научиться работать с файлами в программе Turbo Pascal.

Теоретические сведения:

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

Структура описания файловой переменной:

Var <имя переменной>: File Of <тип элемента>;

где <тип элемента> может быть любым, кроме файлового.

Для того чтобы начать запись в файл, его следует открыть для записи. Это обеспечивает процедура Rewrite (FV); где FV — имя файловой переменной. При этом указатель устанавливается на начало файла. Если в файле есть информация, то она исчезает.

Запись в файл осуществляется процедурой Write (FV, V); где V — переменная того же типа, что и файл FV. Запись происходит туда, где установлен указатель.

Для чтения элементов файла с его начала следует открыть файл для чтения. Это делает процедура Reset (FV). В результате указатель устанавливается на начало файла. При этом вся информация в файле сохраняется.

Чтение из файла осуществляется процедурой Read (FV,V); где V — переменная того же типа, что и файл FV. Значение текущего элемента файла записывается в переменную V; указатель смещается к следующему элементу.

Для организации связи между файловой переменной и внешним файлом в Турбо Паскале используется процедура назначения: Assign  (<имя файловой переменной>, <внешней файл>);

Здесь <внешней файла> — строковая величина;

Работа с файлом в программе завершается его закрытием с помощью процедуры

Close (<имя файловой, переменной>).

Для определения размера файла используется функция: FileSize (<имя файловой переменной>);

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

Сформировать файл F, компонентами которого являются целые числа. Записать в файл C все четные числа файла F, а в файл N - все нечетные. Порядок следования чисел сохраняется. Откомпилируйте программу. Проверьте правильность решения задачи.

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

Записать в файл f последовательного доступа N целых чисел. Получить в другом файле последовательного доступа все компоненты файла f, кроме тех, которые кратны K. Откомпилируйте программу. Проверьте правильность решения задачи.

 

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

Выйдите из программы Turbo Pascal.


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

Работа с текстовыми файлами.

Цель: научиться работать с текстовыми файлами в программе Turbo Pascal.

Теоретические сведения:

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип Text:

Var F: text; {F - файловая переменная}. Каждая строка завершается маркером конца строки.

Вызов Read(F, Ww), где Ww – переменная типа word, осуществляет чтение из файла F последовательности цифр, которая затем интерпретируется в число, значение которого и будет присвоено переменной Ww. В случае если вместо последовательности цифр идет любая другая последовательность символов, использование такого оператора приводит к ошибке выполнения программы. Открытие текстового файла можно произвести двумя стандартными способами:

 - поставить в соответствие файловой переменной имя файла (процедура Assign), открыть новый текстовый файл (процедура Rewrite);

- поставить в соответствие файловой переменной имя файла (процедура Assign), открыть уже существующий файл (процедура Reset).

Текстовый файл в силу своей специфики во время работы допускает только один вид операции: чтение или запись. В связи с этим для работы с текстовыми файлами используется еще одна процедура открытия файла: Append(vaг F : text); Эта процедура открывает уже существующий файл и позиционирует указатель обработки на конец файла. После этого в текстовый файл можно только добавлять информацию, причем только в конец файла. Для обработки текстовых файлов используются процедуры Read и Write, обеспечивающие соответственно чтение и запись одной строки и более в текстовый файл. Использование специальных разделителей строк позволило ввести в состав языковых средств еще две процедуры: Readln, выполняющую те же действия, что и Read, и дополнительно – чтение до маркера конца строки и переход к новой строке; Writeln, обеспечивающую запись всех величин с обязательной установкой маркера конца строки в файл.

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

При организации операций ввода-вывода используются специальные языковые средства в виде функций Eoln, Eof, SeekEoln, SeekEof.

Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) вернул значение True. Во всех остальных случаях значение функции будет False.

Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False – в противном случае.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

 Дано10 слов. Записать их в файл, расположив каждое слово на отдельной строке.

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

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

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

 

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

 

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

Выйдите из программы Turbo Pascal.


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

Программирование данных типа «запись».

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

Теоретические сведения:

Комбинированный тип данных — это структурированный тип, состоящий из фиксированного числа компонент (полей) разного типа. Комбинированный тип имеет еще и другое название — запись.

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

К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру: <имя переменной>.<имя поля>.

В программе могут использоваться массивы записей.

Любая обработка записей, в том числе ввод и вывод, производится поэлементно.

Осуществлять доступ к полям записи можно с помощью оператора присоединения. Его общий вид:  With <имя записи> Do <оператор>. Внутри оператора к компонентам записи можно обращаться только с помощью имени соответствующего поля.

Элементы файла пронумерованы в порядке их занесения в файл, начиная с нуля. Задав номер элемента файла, можно непосредственно установить на него указатель. После этого можно читать или перезаписывать данный элемент. Установка указателя на нужный элемент файла производится процедурой Seek(FV,n). Здесь FV — имя файловой переменной, n — порядковый номер элемента.

Порядок выполнения работы:

Запустите программу Turbo Pascal.

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

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

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

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

Выйдите из программы Turbo Pascal.


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

Программирование модулей.

Цель: научиться составлять программы с использованием модулей в программе Turbo Pascal.

Теоретические сведения:

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

Модуль имеет следующую структуру:

Unit  <имя  модуля>;    {заголовок модуля}

Interface {интерфейсная часть}

Implementation {раздел реализации}

Begin

{раздел инициализации модуля}

End.

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

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

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

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

Порядок выполнения работы:

Запустите программу Turbo Pascal.

Создать программу: Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (Р — целое, Q — натуральное):

сложение;    2) вычитание;   3) умножение;  4) деление;  5) сокращение дроби;

5) возведение дроби в степень TV (7V — натуральное);

6) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

Дробь представить следующим типом: Type Frac=Record

Р: Integer;

Q: 1..32767;  End;

Используя этот модуль, решить задачу:

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

*Дан массив А, элементы которого — обыкновенные дроби. Отсортировать его в порядке возрастания.

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

Создать программу: Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами:

сложения;

вычитания;

скалярного умножения векторов;

умножения вектора на число;

нахождения длины вектора.

Вектор представить следующим типом:

Type Vektor=Record

X, Y: Real;

End;

Используя этот модуль, решить задачу:

Дан массив А — массив векторов. Отсортировать его в порядке убывания длин векторов.

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

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

Выйдите из программы Turbo Pascal.


КОНТРОЛЬНОЕ ТЕСТИРОВАНИЕ

Какие операторы записаны правильно?

g:=g;

М:=2хМ;

k:=232R;

s:=l:=u

В каком разделе программы на языке Паскаль можно использовать процедуру вывода
Write?

В разделе выполняемых операторов;

В разделе описания констант;

В разделе описания переменных.

Какие процедуры ввода записаны без ошибок?

Read (S, 67);

Read (Т);

Read Т;

Read (а, с);

Read ('a');

Read ('Введите а', а).

Что будет выведено на экран в результате выполнения программы?

Program S;

Var x, у: Integer;

Begin х:=2;  у:=3; х:=х*х; у := у * у;х:=х + у;

WriteLn ('х =', х);

End.

х = 5;

с=13;

13;

5.

Какая команда позволяет увидеть результат выполнения программы?

Debug/Output;

File/Save;

File/New;

Run/Run.

Какое расширение должен иметь файл с исходным текстом программы на Паскале?

В AS;

ВАК;

С;

PAS.

Какие имена программ на Паскале допустимы (при условии, что имя программы не совпадает с именем файла)?

112233;

MyProgl;

Мойрг!;

MyPrograml.

Какие элементы языка Турбо-Паскаль могут быть обозначены идентификаторами?

Переменные;

Операторы;

Константы

Какие из перечисленных типов данных относятся к простым?

Логический;

Символьные;

Целые;

Строковые.

Какие из представленных здесь констант относятся к целым?

'555';

1188;

1.0;

-345.

Операторы в программе на языке Pascal отделяются друг от друга:

двоеточием;

точкой с запятой;

пробелом;

запятой.

Какой оператор позволяет выводить пустую строку в документе?

writeln ;

print;

output;

readln.

Укажите условие выбора чисел, кратных 3, но не кратных 6

(X mod 3 =0) AND (X mod 6 <>О);

(Х/3 =0) OR (X / 6≠0));

(X mod 3 =0) OR (X mod 6 <>0);

(X mod 6 <>0).

Какое значение примет переменная С в результате выполнения программы:

VAR А, В, С : INTEGER;

BEGIN

А:=-4;  В:=А*3-6; IF B>2*A THEN A := 2;

IF B<2*A THEN A := 5;  IF B=2*A THEN A := В - A;

С :=A*B+A-B; WRITELN ('C=', C);

END.

29;

21;

32;

12.

Какой из операторов организует в программе множественный выбор?

If условие Then действие1 Else действие2;

If условие Then действие;

Case ключ of ;

goto n.

С помощью какого оператора осуществляется переход к метке?

If условие Then действие;

Case ключ of;

goto n;

If условие Then действие1 Else действие2.

При каком значении X при исполнении программы будет получен ответ «ДА»:

Program T21;

Var X: Integer;

Begin

Readln(X);  If X MOD 2=0 Then Writeln('ДA') Else Writeln('HET');

End.

3;

15;

4;

7.

Какое значение будет принимать переменная Y после выполнения фрагментов программы?

Var Y, X: integer;

Begin Y: = l;  X: = 10;

Repeat

Y:=X*X;           X:=X-2;

Until X<=0;

Writeln ('У=',У);     End.

4;

0;

2;

100.

Какие из приведенных операторов организуют цикл со счетчиком?

For i := nl downto n2 do оператор;

repeat <операторы > until условие;

while условие do <оператор>;

for i = nl to n2 do оператор.

Какое значение будет принимать переменная Y после выполнения фрагментов программы?

у:=0;    FOR х := 1 ТО 5 do У := У * х;       Writeln (у);

0;

12345;

120;

00000.

Тело цикла - это...

группа команд, не входящих в циклическую структуру;

группа команд, повторяющихся некоторое число раз;

произвольная группа команд;

команды, заключенные в операторные скобки.

Какой из перечисленных заголовков циклов не содержит ошибок?

FOR X:=3 ТО 12 DO;

FOR К = 1 ТО 5.5 DO;

FOR K = 2DOWNTO 10 DO;

FOR J := 10 TO -2 DO.

Что определяет индекс массива?

Индекс определяет положение элемента массива данных относительно его конца;

Индекс определяет положение элемента массива данных относительно друг друга;

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

Укажите правильное описание массива

Var a:array[1..1000] of integer;

Var A: ARRAY [1..50 OF REAL];

Var A, B, C: ARRAY [1 ..50] OF REAL.

Что производит следующий фрагмент программы?

s:=0; for i:=l to n do

for j:=l to n do s: =s+a[i, j]; end;

writeln('s=',s);

Находит сумму элементов каждой строки и выводит их на экран;

Находит сумму всех элементов двумерного массива и сумму элементов каждой строки и выводит их на экран;

Находит сумму всех элементов двумерного массива и выводит их на экран.

СПИСОК ЛИТЕРАТУРЫ

Литература основная:

Основы программирования: Учебник для сред. проф. образования / И.Г.Семакин, А.П. Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2003. – 432 с.

Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: учеб. пособие. – 3-е изд., испр. и доп. – М.: ФОРУМ, 2008. – 432 с.

Литература дополнительная:

Канцедал С.А. Алгоритмизация и программирование: учебное пособие. – М.: ИД «ФОРУМ»: ИНФРА-М, 2008. – 352 с.

Голицына О.Л., Партыка Т.Л., Попов И.И. Языки программирования: учеб. пособие. – М.: ФОРУМ: ИНФРА-М, 2008. – 400 с.


СОДЕРЖАНИЕ

Введение………………………………………………………………………………………….

3

Лабораторная работа №1. Программирование линейных алгоритмов……………………

4

Лабораторная работа №2. Программирование разветвляющихся алгоритмов……………

6

Лабораторная работа №3. Программирование алгоритмов с использованием оператора выбора……………………………………………………………………………………………


8

Лабораторная работа №4. Программирование циклических алгоритмов: цикл с параметром………………………………………………………………………………………………..


9

Лабораторная работа №5. Программирование циклических алгоритмов: цикл с предусловием……………………………………………………………………………………………….


10

Лабораторная работа №6. Программирование циклических алгоритмов: цикл с постусловием……………………………………………………………………………………………….


11

Лабораторная работа №7. Обработка одномерных и двумерных массивов…………………

12

Лабораторная работа №8. Сортировка массивов. Поиск элемента массива…………………

14

Лабораторная работа №9. Работа со строковым типом данных……………………………...

15

Лабораторная работа №10. Работа с множественным типом данных………………………..

17

Лабораторная работа №11. Организация процедур……………………………………………

19

Лабораторная работа №12. Организация функций……………………………………………

21

Лабораторная работа №13. Использование рекурсивных подпрограмм…………………….

22

Лабораторная работа №14. Использование процедур и функций: графические возможности…………………………………………………………………………………………………


23

Лабораторная работа №15. Работа с типизированными файлами последовательного доступа………………………………………………………………………………………………


25

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

27

Лабораторная работа №17. Программирование данных типа «запись»……………………...

29

Лабораторная работа №18. Программирование модулей……………………………………..

30

Контрольное тестирование……………………………………………………………………...

32

Список литературы………………………………………………………………………………

34



По теме: методические разработки, презентации и конспекты

Методические указания к лабораторным работам по дисциплине "Программирование в среде Delphi"

Методическая разработка содержит 15 лабораторных работ на темы:-работа с формами- разработка приложения с компонентами ввода и отображения информации- использование компонентов для работы со списками-...

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО ДИСЦИПЛИНЕ «МЕТРОЛОГИЯ, СТАНДАРТИЗАЦИЯ И СЕРТИФИКАЦИЯ »

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

Методические указания к лабораторной работе по теме «MS Word. Интерфейс. Создание, сохранение, открытие документа. Шрифтовое форматирование текста»

Цель: Познакомиться с интерфейсом программы MS Word и научиться настраивать окно документа; освоить основные приемы работы с документами MS Word (создание, сохранение, открытие документа); научиться в...

Методические указания к лабораторным работам по созданию сайта "Основы использования HTML"

Все материалы для работы и выполнения контрольной  находятся в папке HTML_met  в архиве HTML_met.zip.Основная методичка называется Html_posobie.pdf...

Методические указания к лабораторным работам Работа с текстовым процессором Microsoft Word

Методические указания по дисциплине «Информатика» предназначены для студентов специальности для специальности 3.34.02.01 Сестринское делона базе основного общего образования(естественно ...