Инфоурок Информатика Другие методич. материалыМетодическое пособие "Лабораторные работы PASCAL"

Методическое пособие "Лабораторные работы PASCAL"

Скачать материал

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

Выбранный для просмотра документ lab01.doc

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

РАБОТА В ИНТЕГРИРОВАННОЙ СРЕДЕ Турбо-Паскаль 7.0

Цель работы

            Начальное знакомство с интегрированной средой.

            Овладение практическими навыками работы с компонентами интегрированной среды.

Краткие теоретические и справочные сведения

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

Для входа в интегрированную среду следует вызвать на выполнение программу, которая находится в файле W:\BP\BIN\bp.exe. Вызов осуществляется вводом соответствующей команды, после того как создан и назначен текущим каталог LABOR  на личном диске X:. На экране дисплея появляется основной экран ИСТП, содержащий в верхней части главное меню среды, в нижней - строку "горячих" кнопок и между ними основное поле экрана. Поле экрана предназначено для размещения окон ввода и редактирования исходных текстов программ и просмотра содержания файлов.

Для активизации меню используется клавиша <F10>. Сразу же на требуемый пункт меню можно выйти, нажав клавишу <ALT> и одновременно с ней выделенную цветом букву пункта меню. Кроме того, можно использовать "мышь", подведя курсор к соответствующему пункту и нажать левую кнопку мыши. Главное меню, аналогично меню Norton Commander, где каждый из пунктов содержит систему выпадающих меню. За многими из пунктов меню закреплены клавиши или их комбинации (Hot Keys), нажатие которых вызывает соответствующее действие. Наименования клавиш указаны справа от тех пунктов меню, за которыми они закреплены. Перечень основных необходимых действий приведен в Приложении 2.

Текст программы набирается в поле основного экрана (текстового редактора). Открытие новой строки осуществляется нажатием клавиши <Enter>,  передвижение по тексту – с помощью стрелок управления курсором и клавиш <Home>, <End>, <PgDn>, <PgUp>.

ИСТП позволяет одновременно открывать несколько окон редактирования, имеющих общий буфер обмена (ClipBoard), который можно открыть как обычное окно и который позволяет обмениваться информацией между окнами.. Буфер обмена пополняется командами редактора Copy и Cut. Активное окно отличается от остальных двойной рамкой.

Вводимые исходные данные и результаты работы программы отражаются на экране DOS, которое появляется, в результате вызова процедур Паскаля: read(…), readln(…), write(…), writeln(…). Чтобы иметь возможность просмотреть указанные данные необходимо либо временно выйти в экран DOS (возврат – любая клавиша), либо представить часть экрана в окне "Output".

Отладчик позволяет останавливать выполняемую программу в заданном месте, затем продолжать выполнение по шагам с выводом текущих значений указанных переменных в окне отладчика. Если точка останова не установлена, то можно начать выполнение программы по шагам нажатием клавиши <F7>, войдя в окно <Watches>.

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

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

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

Наиболее распространенные ошибки приведены в Приложении 3

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

1.   На диске X: создать каталог LABOR и войти в него.

2.   Вызвать Турбо Паскаль.

3.   Набрать текст программы, соблюдая все пробелы, знаки препинания и отступы. Обратить внимание на то, что слова в тексте имеют разные цвета: зарезервированные слова Паскаля – желтый, комментарии – серый, остальные -- белый.

Текст программы

Program example;

{ Сортировка набора целых чисел методом "пузырька"}

const          { Секция описания констант}

    n= 10;

var              { Секция описания переменных}

   a: array [1..n] of byte;

   i: integer;

   fl: boolean;

   b: byte;

begin           { Исполняемая часть}

  randomize;

  writeln( 'Исходный набор данных:');

  for i:=1 to n do

  begin

     a[i]:= 10+random(90);

     write( a[i]:3);

  end;

  writeln;

  repeat

     fl:= true;

     for i:=1 to n-1 do

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

        begin

           b:= a[i];

           a[i]:= a[i+1];

           a[i+1]:= b;

           fl:= false;

        end;

    until fl;

    writeln( 'Результат сортировки:');

    for i:=1 to n do

      write( a[i]:3);

    writeln;

end.

 

4.   Запустить компиляцию с диагностикой ошибок. Исправить синтаксические ошибки, если таковые имеются (Приложение 3).

5.   Запустить программу на выполнение и посмотреть результаты ее работы на экране DOS.

6.   Открыть окно "Output" и запустить программу на выполнение.

7.   Открыть окно "Watches", занести в него последовательно переменные n, i, a, fl, a[i], b, a[i+1]. Переменные заносятся поотдельности после нажатия клавиши <Insert>.

8.   Изменить размеры окна "Watches" таким образом, чтобы все переменные были в нем видны.

9.   Изменить размеры и положение окон "Output" и "Watches" таким образом, чтобы на экране была видна информация во всех окнах.

10.Выполнить программу по шагам последовательным нажатием клавиши <F8> и проследить изменение значений переменных в окне "Watches".

11.Открыть новое окно редактирования и скопировать в него информацию из первого окна.

12.Сохранить тексты в открытых окнах редактирования под разными именами.

13.Закончить работу, выйдя из Турбо Паскаля.

Контрольные вопросы

1.     Что значит выполнить компиляцию программы?

2.     Для чего предназначены окна "Output" и "Watches"?

3.     Как запустить программу на выполнение?

4.     Как сохранить программу?

5.     Как открыть уже существующую программу?

6.     Каким образом осуществляется копирование текстов программ в Турбо Паскале из одного окна в другое?

7.     Как изменить размер и местоположение окна в Турбо Паскале?

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор детского оздоровительного лагеря

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab02.doc

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

РАБОТА В ИНТЕГРИРОВАННОЙ СРЕДЕ Турбо-Паскаль 7.0

Цель работы

            Начальное знакомство с интегрированной средой.

            Овладение практическими навыками работы с компонентами интегрированной среды.

Краткие теоретические и справочные сведения

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

Для входа в интегрированную среду следует вызвать на выполнение программу, которая находится в файле W:\BP\BIN\bp.exe. Вызов осуществляется вводом соответствующей команды, после того как создан и назначен текущим каталог LABOR  на личном диске X:. На экране дисплея появляется основной экран ИСТП, содержащий в верхней части главное меню среды, в нижней - строку "горячих" кнопок и между ними основное поле экрана. Поле экрана предназначено для размещения окон ввода и редактирования исходных текстов программ и просмотра содержания файлов.

Для активизации меню используется клавиша <F10>. Сразу же на требуемый пункт меню можно выйти, нажав клавишу <ALT> и одновременно с ней выделенную цветом букву пункта меню. Кроме того, можно использовать "мышь", подведя курсор к соответствующему пункту и нажать левую кнопку мыши. Главное меню, аналогично меню Norton Commander, где каждый из пунктов содержит систему выпадающих меню. За многими из пунктов меню закреплены клавиши или их комбинации (Hot Keys), нажатие которых вызывает соответствующее действие. Наименования клавиш указаны справа от тех пунктов меню, за которыми они закреплены. Перечень основных необходимых действий приведен в Приложении 2.

Текст программы набирается в поле основного экрана (текстового редактора). Открытие новой строки осуществляется нажатием клавиши <Enter>,  передвижение по тексту – с помощью стрелок управления курсором и клавиш <Home>, <End>, <PgDn>, <PgUp>.

ИСТП позволяет одновременно открывать несколько окон редактирования, имеющих общий буфер обмена (ClipBoard), который можно открыть как обычное окно и который позволяет обмениваться информацией между окнами.. Буфер обмена пополняется командами редактора Copy и Cut. Активное окно отличается от остальных двойной рамкой.

Вводимые исходные данные и результаты работы программы отражаются на экране DOS, которое появляется, в результате вызова процедур Паскаля: read(…), readln(…), write(…), writeln(…). Чтобы иметь возможность просмотреть указанные данные необходимо либо временно выйти в экран DOS (возврат – любая клавиша), либо представить часть экрана в окне "Output".

Отладчик позволяет останавливать выполняемую программу в заданном месте, затем продолжать выполнение по шагам с выводом текущих значений указанных переменных в окне отладчика. Если точка останова не установлена, то можно начать выполнение программы по шагам нажатием клавиши <F7>, войдя в окно <Watches>.

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

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

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

Наиболее распространенные ошибки приведены в Приложении 3

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

1.   На диске X: создать каталог LABOR и войти в него.

2.   Вызвать Турбо Паскаль.

3.   Набрать текст программы, соблюдая все пробелы, знаки препинания и отступы. Обратить внимание на то, что слова в тексте имеют разные цвета: зарезервированные слова Паскаля – желтый, комментарии – серый, остальные -- белый.

Текст программы

Program example;

{ Сортировка набора целых чисел методом "пузырька"}

const          { Секция описания констант}

    n= 10;

var              { Секция описания переменных}

   a: array [1..n] of byte;

   i: integer;

   fl: boolean;

   b: byte;

begin           { Исполняемая часть}

  randomize;

  writeln( 'Исходный набор данных:');

  for i:=1 to n do

  begin

     a[i]:= 10+random(90);

     write( a[i]:3);

  end;

  writeln;

  repeat

     fl:= true;

     for i:=1 to n-1 do

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

        begin

           b:= a[i];

           a[i]:= a[i+1];

           a[i+1]:= b;

           fl:= false;

        end;

    until fl;

    writeln( 'Результат сортировки:');

    for i:=1 to n do

      write( a[i]:3);

    writeln;

end.

 

4.   Запустить компиляцию с диагностикой ошибок. Исправить синтаксические ошибки, если таковые имеются (Приложение 3).

5.   Запустить программу на выполнение и посмотреть результаты ее работы на экране DOS.

6.   Открыть окно "Output" и запустить программу на выполнение.

7.   Открыть окно "Watches", занести в него последовательно переменные n, i, a, fl, a[i], b, a[i+1]. Переменные заносятся поотдельности после нажатия клавиши <Insert>.

8.   Изменить размеры окна "Watches" таким образом, чтобы все переменные были в нем видны.

9.   Изменить размеры и положение окон "Output" и "Watches" таким образом, чтобы на экране была видна информация во всех окнах.

10.Выполнить программу по шагам последовательным нажатием клавиши <F8> и проследить изменение значений переменных в окне "Watches".

11.Открыть новое окно редактирования и скопировать в него информацию из первого окна.

12.Сохранить тексты в открытых окнах редактирования под разными именами.

13.Закончить работу, выйдя из Турбо Паскаля.

Контрольные вопросы

1.     Что значит выполнить компиляцию программы?

2.     Для чего предназначены окна "Output" и "Watches"?

3.     Как запустить программу на выполнение?

4.     Как сохранить программу?

5.     Как открыть уже существующую программу?

6.     Каким образом осуществляется копирование текстов программ в Турбо Паскале из одного окна в другое?

7.     Как изменить размер и местоположение окна в Турбо Паскале?

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab03.doc

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

ЛИНЕЙНЫЕ АЛГОРИТМЫ И СПОСОБЫ ИХ РЕАЛИЗАЦИИ. ОРГАНИЗАЦИЯ ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ ПРОГРАММОЙ И СТАНДАРТНОЙ СИСТЕМОЙ ВВОДА/ВЫВОДА.

Цель работы

1.     Разработка и программирование алгоритмов с линейной структурой.

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

 

Краткие теоретические и справочные сведения

I Структура программы в языке Турбо-Паскаль; операторы присваивания, ввода и вывода

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

Program Имя_программы;

    Const {Раздел определения констант};

    Type {Раздел описания типов};

    Var {Раздел описания переменных};

Procedure {Раздел описания процедуры};

Function {Раздел описания функции};

Begin

{ Тело программы};

End.

Любая программа всегда начинается со служебного слова Program, после которого пишется имя программы. Имя программы не может начинаться с цифры или содержать пробел.

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

ü Целочисленный тип – integer (- 32768..32767);

ü Вещественный тип – real ();

ü Логический тип – Boolean (переменные данного типа могут принимать только два значения: True или False);

ü Символьный тип – Char;

ü Строковый тип - String.

Написание тела программы начинается со служебного слова Begin, заканчивается программа служебным словом End и точкой. После всех операторов в языке Турбо-Паскаль ставится точка с запятой (исключение – служебное слово begin и оператор, находящийся перед служебном словом else в структуре условного оператора).

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

<имя переменной>:=<выражение>;

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

а:=5; s:=’мороз’;

Тип выражения должен совпадать с типом переменной. Исключением является случай, когда переменная слева имеет тип Real, а выражение справа имеет тип Integer.

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

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

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

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

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

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

Для вывода значений переменных на экран используются следующие операторы вывода:

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

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

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

Для вывода на экран вещественных чисел, рекомендуется использовать форматный вывод – после имени переменной указать через двоеточие количество позиций, отводимых под всё число, включая знак числа и знак десятичной точки, и количество позиций, отводимых под дробную часть, например:

writeln(b:7:3);

 

II Реализация линейных алгоритмов на языке Турбо-Паскаль

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

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

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

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

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

Задача:

Вычислить значение арифметического выражения:

Y=

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

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

Программа для рассматриваемого примера будет иметь вид:

Program Formula;

var

         x, a, B, C, Y: real;

begin

write(‘Введите х=’);

readln(x);

write(‘Введите а=’);

readln(a);

B:=sqr(x)+sqr(a);

C:=x*a;

Y:=(B+sin(C))/(C+cos(C));

write(‘Результат вычислений Y=’,Y:7:3);

readln;

end.

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

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

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

3.     Произвести компиляцию программы (меню – Compile/Compile или Alt+F9), устранить обнаруженные ошибки.

4.     Сохраните программу на диске Х (меню – File/Save as… или F2).

5.     Запустите программу на исполнение (меню – Run/Run или Ctrl+F9).  Для того, что бы вернуться к исходному тексту программы, нажмите Enter.

6.     Оформите оператор readln как комментарий – возьмите его в фигурные скобки – {readln};. Вновь запустите программу на исполнение. В этом случае, после исполнения программы, вы сразу же вернетесь в окно с текстом программы. Для того, чтобы просмотреть полученные результаты выполните Debug/User screen или нажмите Alt+F5.

7.     Покажите работающую программу и блок-схему преподавателю, получите зачет по работе.

Варианты задания

1

6

2

7

3

8

4

9

5

10

 

 

Контрольные вопросы

1.     Какова структура программы на языке программирования Турбо-Паскаль?

2.     Какие типы данных существуют в языке Турбо-Паскаль?

3.     Что такое идентификатор?

4.     Какова структура оператора присваивания?

5.     Назовите операторы ввода и вывода в языке Турбо-Паскаль. Что такое список переменных? Что такое форматный вывод?

6.     Что такое алгоритм?

7.     Какой алгоритм называется линейным?

8.     Какие существуют способы представления алгоритмов?

9.     Каким образом осуществляется компиляция программы и ее запуск на исполнение? Как просмотреть результаты выполнения программы? Для чего можно использовать оператор readln?

10. Какие переменные в вашем задании вы могли описать как переменные целого типа, а какие переменные должны быть обязательно описаны как переменные вещественного типа?

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Фитнес-тренер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab04.doc

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

РЕАЛИЗАЦИЯ АЛГОРИТМОВ ВЕТВЛЕНИЯ

Цель работы

1.     Разработка и программирование алгоритмов с разветвляющей структурой.

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

Краткие теоретические и справочные сведения

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

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

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

If <условие> then <действие 1> else <действие 2>;

В случае если выполняется поставленное условие, то реализуется <действие 1>, иначе будет выполнено <действие 2>; <действие 1> и <действие 2> - это оператор или группа операторов, заключенная в операторные скобки beginend. Данные операторы могут быть любыми, в том числе снова условными.

Ветвление может быть неполным:

If <условие> then <действие>;

В блок-схемах полные и неполные ветвления изображаются следующим образом:

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

Задача: написать программу, определяющую -  принадлежит ли точка с заданными координатами (x,y) выделенной области на графике (включая границы области).

Данная область ограничивается графиками двух функций (четверть окружности) и y = x - 6. Разобьем данную область на две части: четверть окружности и треугольник. Для того чтобы точка принадлежала четверти окружности, ее координаты должны удовлетворять условиям: , 36. Для того чтобы точка принадлежала треугольнику, должны выполнятся следующие условия: x0, , .  Запишем первое условие принадлежности точки части окружности в виде логического выражения:

f1 = (x > =0) (y >= 0) (<=36).

Знак “” – знак логической операции конъюнкции (“и”).

Переменная f1 примет значение “True” (“истина”), если координаты точки будут удовлетворять заданным условиям.

Аналогичным образом зададим логическую переменную f2:

f2 = (x >= 0) () ( y >= x – 6).

Для того чтобы точка принадлежала рассматриваемой области, ее координаты должны удовлетворять либо первому условию, либо второму (т.е. точка должна принадлежать либо четверти окружности, либо треугольнику). Запишем это условие с помощью логической переменной f3:

f3 = f1 f2.

Знак “” – знак логической операции дизъюнкции (“или”).

Начертим блок-схему:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Программа для рассматриваемого примера будет иметь вид:

Program Uslovie;

Var x, y: real;

f1, f2, f3: boolean;

Begin

write (‘Введите координаты точки х и у: ’);

readln (x,y);

f1:=(x>=0) and (y>=0) and (x*x + y*y <=36);

f2:=(x>=0) and (y<=0) and (y>=x-6);

f3:=f1 or f2;

If f3 then writeln(‘Заданная точка принадлежит данной

  области’)

else writeln(‘Заданная точка не принадлежит данной

 области’);

readln;

End.

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

1.     Разработать алгоритм и написать программу, проверяющую принадлежит ли точка с координатами (х,у) заданной области согласно своему варианту задания; зарисовать блок-схему.

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

3.     Покажите работающую программу и блок-схему преподавателю, получите зачет по работе.

Варианты задания

1

6

2

7

3

8

4

9

5

10

Контрольные вопросы

1.     Какие алгоритмы называются разветвляющимися?

2.     Как изобразить ветвления с помощью блок-схемы?

3.     Чем отличается полное ветвление от неполного? Как полные и неполные ветвления изображаются с помощью блок-схемы?

4.     Расскажите о конструкции условного оператора в Турбо-Паскале. 

5.     В чем особенность логического типа данных?

6.     Какие логические операции вы знаете?

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab05.doc

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

АЛГОРИТМЫ МНОГОАЛЬТЕРНАТИВНОГО ВЕТВЛЕНИЯ И ИХ РЕАЛИЗАЦИЯ

Цель работы

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

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

Краткие теоретические и справочные сведения

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

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

<Константа выбора 1>: <действие 1>;

<Константа выбора 2>: <действие 2>;

…………

<Константа выбора N>: <действие N>;

else <действие N+1>;

end;

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

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

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

Задача: С клавиатуры вводится число от 1 до 3, соответствующее одному из элементов правильного тетраэдра: 1 – длина ребра, 2 – площадь боковой грани, 3 – площадь полной поверхности. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, вводится значение соответствующего элемента, используя которое нужно вычислить значения остальных элементов (правильный тетраэдр – это треугольная пирамида, все ребра которой равны, соответственно его боковыми гранями являются равные между собой равносторонние треугольники).

Для удобства введем обозначения: а – длина ребра, S – площадь боковой грани,   - площадь полной поверхности.

Так как боковая грань – равносторонний треугольник, то его площадь вычисляется по формуле: .

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

Рассмотрим возможные варианты:

·        Введено «1». Тогда вводим с клавиатуры длину ребра а и вычисляем площадь боковой грани и площадь полной боковой поверхности по приведенным выше формулам;

·        Введено «2». Вводим с клавиатуры площадь боковой грани S и вычисляем остальные элементы по формулам:  и .

·        Введено «3». Вводим с клавиатуры площадь полной поверхности  и вычисляем остальные элементы по формулам:  и .

Напишем программу для данной задачи:

Program Vybor;

Var a, S, S1: real;

k: integer;

Begin

writeln(‘Введите число от 1 до 3, соответствующее: ’);

writeln(‘1 – длина ребра’);

writeln(‘2 – площадь боковой грани’);

writeln(‘3 – площадь полной поверхности’);

write(‘k=’);

Readln(k);

If (k<1) and (k>3) then writeln(‘Недопустимый ввод’)

    Else

          Case k of

                  1: begin

                             write(‘Введите длину ребра: ‘);

                             readln(a);

                             S:=a*a*sqrt(3)/4;

                             S1:=4*S;

                             writeln(‘Площадь боковой грани S=’,S:5:2);

                              writeln(‘Площадь полн. пов. S1=’,S1:5:2);

                      end;

                  2: begin

                         write(‘Введите площадь боковой грани: ‘);

                         readln(S);

                         a:=sqrt(4*S/sqrt(3));

                         S1:=4*S;

                         writeln(‘Длина ребра а=’,a:5:2);

                                writeln(‘Площадь полн. пов. S1=’,S1:5:2);

                      end;

                  3: begin

                          write(‘Введите площадь полн. пов.: ‘);

                          readln(S1);

                          S:=S1/4;

                           a:=sqrt(4*S/sqrt(3));

                          writeln(‘Длина ребра а=’,a:5:2);

                          writeln(‘Площадь боковой грани S=’,S:5:2);

                      end;

           end;

readln;

end.

 

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

1.     Разработать алгоритм и написать программу, согласно своему варианту задания.

2.     Проверить правильность выполнения программы, вводя различные данные.

3.     Покажите работающую программу преподавателю, получите зачет по работе.

Варианты задания

 

1.     С клавиатуры вводится число от 1 до 4, соответствующее: 1 – миллиграмм, 2 – грамм, 3 – тонна, 4 - центнер. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается масса М в соответствующих единицах измерения и выводится ее значение в килограммах.

2.     С клавиатуры вводится число от 1 до 3, соответствующее: 1 – радиус, 2 – диаметр, 3 – длина окружности. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается значение соответствующего элемента окружности и вычисляется ее площадь. Например, если введено «1», то считывается значение радиуса, используя которое необходимо вычислить площадь окружности.

3.     С клавиатуры вводится число от 1 до 3, соответствующее: 1 – окружность, 2 – прямоугольник, 3 – трапеция. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, нужно вычислить площадь соответствующей фигуры, введя для этого значения необходимых элементов. Например, если введено «3», то нужно ввести значение длин оснований трапеции и ее высоту, используя которые вычислить площадь.

4.     С клавиатуры вводится число от 1 до 4, соответствующее: 1 – синус, 2 – косинус, 3 – тангенс, 4 – котангенс. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается значение соответствующей функции для некоторого угла a, для которого необходимо найти значения всех остальных тригонометрических функций. Например, если введено «1», то вводится значение , а затем вычисляются значения .

5.     С клавиатуры вводится число от 1 до 3, соответствующее одному из элементов равнобедренного прямоугольного треугольника: 1 – катет, 2 – гипотенуза, 3 – площадь. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается значение соответствующего элемента, используя которое вычисляются все остальные элементы. Например, если введено «1», то считывается значение катета, а затем находится гипотенуза и вычисляется площадь треугольника.

6.     С клавиатуры вводится число от 1 до 3, соответствующее одному из элементов равностороннего треугольника: 1 – длина стороны, 2 – периметр, 3 – площадь. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается значение соответствующего элемента, используя которое нужно вычислить значения остальных элементов. Например, если введено число «1», то вводится длина стороны треугольника и с помощью этого значения вычисляются периметр и площадь треугольника.

7.     С клавиатуры вводится число от 1 до 4, соответствующее одному из элементов квадрата: 1 – длина стороны, 2 – длина диагонали, 3 – периметр, 4 – площадь. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, вводится значение соответствующего элемента, с помощью которого вычисляются все остальные элементы. Например, если введено число «2», то с клавиатуры вводится длина диагонали квадрата, используя которую необходимо найти длину стороны, периметр и площадь квадрата.

8.     С клавиатуры вводится число от 1 до 3, соответствующее: 1 – прямой круговой цилиндр, 2 – конус, 3 – шар, 4 – прямоугольный параллелепипед. Если введено, недопустимое число, то выводится сообщение об ошибке, в противном случае, нужно вычислить объем соответствующей фигуры, введя для этого значения необходимых элементов. Например, если введено число «2», то нужно ввести с клавиатуры высоту конуса и радиус его основания и вычислить объем фигуры.

9.     С клавиатуры вводится число от 1 до 4, соответствующее одному из элементов куба: 1 – длина ребра, 2 – длина диагонали боковой грани, 3 – площадь боковой грани, 4 – объем. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, считывается значение соответствующего элемента, используя которое нужно вычислить значения остальных элементов куба. Например, если введено число «3», то с клавиатуры вводится значение площади боковой грани куба, с помощью этого значения нужно вычислить длину ребра, длину диагонали боковой грани и объем куба.

10. С клавиатуры вводится число от 1 до 4, соответствующее: 1 – миллиметр, 2 – сантиметр,  3 – дециметр, 4 – километр. Если введено недопустимое число, то выводится сообщение об ошибке, в противном случае, введено недопустимое число, то выводится сообщение об ошибке, в противном случае считывается длина L в соответствующих единицах измерения и выводится ее значение в метрах.

Контрольные вопросы

1.     Что такое многоальтернативное ветвление?

2.     Что такое ключ выбора и константы выбора?

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

4.     Могли ли вы решить свою задачу, используя конструкцию IF…THEN? Почему вашу задачу было удобнее решать с помощью оператора CASE?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab06.doc

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

ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ

Цель работы

1.      Знакомство с итерационными процессами;

2.     Получение навыков в выборе и использовании операторов цикла;

3.     Совершенствование навыков по отладке и тестированию программы.

Краткие теоретические и справочные сведения

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

     Для организации повторений при записи алгоритмов на языке Turbo Pascal используются три типа операторов цикла:

 

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

Общий вид цикла:

            For <параметр цикла>:=<нач.знач.> to <конеч.знач.> do <тело

цикла>;

Здесь, параметр цикла - переменная целого типа; начальное и конечное значение параметра цикла - выражение целого типа. Тип параметра цикла должен совпадать с типом начального и конечного значений параметра цикла. Если после служебного слова do расположен не один оператор, а несколько, то их необходимо заключать в операторные скобки beginend.

Данный тип цикла применяется, если заранее известно количество повторений.

В блок-схемах цикл с параметром изображается следующим образом:

 

 

 

 

 

 

 

 


                            II.      Цикл с предусловием

 

Общий вид цикла:

while <логическое выражение> do <тело цикла>;

 

Истинность логического выражения проверяется перед началом каждой итерации  (каждого повторения).  Выполнение оператора цикла происходит до тех пор, пока логическое выражение имеет значение TRUE. Как только выражение получает значение FALSE, управление передается оператору, следующему за оператором цикла. Один из операторов, находящихся внутри цикла должен влиять на значение выражения, иначе цикл будет выполняться бесконечно. Если логическое выражение будет ложно при первом вхождении в цикл, тело цикла не выполнится ни разу. Если после служебного слова do расположен не один оператор, а несколько, то их необходимо заключать в операторные скобки beginend.

В блок-схемах цикл с предусловием изображается следующим образом:


 

                         III.      Цикл с постусловием

Общий вид цикла:

    repeat

       <оператор>;

       ...

       <оператор>

     until <логическое выражение>;

 

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

На блок-схеме цикл с постусловием изображается следующим образом:

 

 

 

 

 

 

 

 

 


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

Задание 1: Написать программу вычисления суммы конечного числа элементов ряда, если:

Изобразим блок-схему:


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

Программа для данной задачи будет выглядеть следующим образом:

Program Summa_for;

Var

        S, a: real;

n: integer;

begin

S:=0;

For n:=1 to 100 do

begin

a:=n/(n*n+3*n);

S:=S+a;

end;

write(‘Сумма ряда S=’, S:6:3);

readln;

        end.

 

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

A.   Цикл с предусловием.

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

Program Summa_while;

Var

x, S: real;

begin

write(‘Введите число х=’);

readln(x);

S:=x;

while x<>0 do

begin

write(‘Введите число х=’);

readln(x);

S:=S+x;

end;

write(‘Сумма чисел S=’,S:5:2);

readln;

end.

B.    Цикл с постусловием

Напишем программу:

Program Summa_repeat;

Var

   x, S: real;

begin

S:=0;

repeat

write(‘Введите число х=’);

readln(x);

S:=S+x;

until x=0;

write(‘Сумма чисел S=’,S:5:2);

readln;

        end.

Изобразим блок-схемы:

А

В

 

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

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

1.       Разработать алгоритмы и написать программы по двум заданиям, согласно своему варианту (всего три программы, одна – к первому заданию, две – ко второму); изобразить блок-схемы к каждой программе;

2.       Проверить правильность выполнения программы, запустив ее на выполнение несколько раз;

3.       Покажите работающие программы и блок-схемы преподавателю, получите зачет по работе.

Варианты задания

Задача 1:

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

1

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

6

, a вводится пользователем с клавиатуры

2

7

, а вводится пользователем с клавиатуры

3

8

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

4

9

5

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

10

 

Задача 2:  (к задаче своего варианта  необходимо написать две программы – используя циклы с предусловием и постусловием; изобразить блок-схемы).

1.     Вычислить произведение вводимых пользователем с клавиатуры чисел, если числа считываются до тех пор, пока не будет введена единица;

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

3.     Вычислять и выводить на экран члены арифметической прогрессии до тех пор, пока очередной член прогрессии не окажется большим 50. Первый член арифметической прогрессии равен 2, разность равна 5;

4.     Вычислять и выводить на экран члены геометрической прогрессии до тех пор, пока очередной член прогрессии не окажется большим 250. Первый член геометрической прогрессии равен 3, знаменатель равен 4;

5.     Общий член последовательности задан формулой: . Вычислить сумму п первых членов последовательности, меньших 75.

6.     Общий член последовательности задан формулой: . Вычислить сумму n первых членов последовательности, больших 1;

7.     Общий член последовательности задан формулой: .  Суммировать первые n членов последовательности, до тех пор, пока сумма не окажется большей 100. Вывести значение суммы и последнего n-го члена последовательности;

8.     Общий член последовательности задан формулой: . Вычислять произведение первых n членов последовательности до тех пор, пока произведение не окажется большим 1000. Вывести значение произведения и последнего n-го члена последовательности;

9.     Первый член арифметической прогрессии равен -50, разность равна 7. Вывести на экран все члены данной арифметической прогрессии, меньшие нуля;

10.  Первый член арифметической прогрессии равен 90, разность равна  -8. Вычислить сумму всех положительных членов данной арифметической прогрессии.

Контрольные вопросы

 

1.     Какой алгоритм называется циклическим?

2.     Какие три типа операторов цикла используются в языке программирования Turbo Pascal?

3.     В каком случае  удобно использовать цикл for?

4.     В чем сходство и различие конструкций whiledo и repeatuntil?

5.     Как все три вида циклов изобразить с помощью блок-схемы?

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab07.doc

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

АЛГОРИТМЫ ОБРАБОТКИ МАССИВОВ И ИХ РЕАЛИЗАЦИЯ

Цель работы

1.     Научиться описывать переменные типа массив, освоить ввод и вывод массивов.

2.     Познакомиться с основными алгоритмами обработки массивов:

Ø поиск элемента массива;

Ø преобразование элементов массива;

Ø накопление суммы и произведения элементов массива;

Краткие теоретические и справочные сведения

I Понятие одномерного массива; описание массивов

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

Элементы массива могут быть любого типа. Тип индекса массива должен быть целочисленным.

Примеры массивов:

а = (2, 5, -3, 0, 7, 8, 9, -6) – массив целых чисел из 8 элементов; а[3]=-3.

b = (‘alfa’, ‘beta’, ‘gamma’, ‘delta’) – массив, элементы которого имеют тип String; b[2]=’beta’.

Описать одномерный массив можно одним из следующих способов:

1.     описать непосредственно как переменную:

Var

     а: array [1..10]   of  real;

{описание массива, содержащего десять элементов вещественного типа}

2.     описать через объявление типа:

Type

     mas: array [1..10]  of real;

Var

    a: mas; 

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

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

For i:=1 to 20 do read(a[i]); {ввод элементов массива с клавиатуры}

For i:=1 to 15 do a[i]:=random(50)-25;  {задание элементов массива с помощью генератора случайных чисел}

For i:=1 to 50 do write(a[i]:5);  {вывод элементов массива на экран, в одну строку, с использованием форматного вывода}

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

 

III Поиск максимального и минимального элементов в массиве

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

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

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

Мы должны будем выполнить следующие действия по порядку:

ü   Задать одномерный массив;

ü   Вывести его на экран;

ü   Найти максимальный элемент в массиве и запомнить его номер;

ü   Вычислить среднее арифметическое всех элементов массива;

ü   Заменить значение максимального элемента значением среднего арифметического, заменить значение первого элемента максимальным значением;

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

Программа для данной задачи будет выглядеть следующим образом:

Program Massiv;

Var

        a: array [1..10] of integer;

        S: real;

        max, i, imax: integer;

begin

       randomize;

writeln(‘Исходный массив:’);

for i:=1 to 10 do

      begin

          a[i]:=random(20)-10;

          write(a[i]:5);

      end;

max:=a[1];  imax:=1;

for i:=2 to 10 do

      if a[i]>max then

           begin

                 max:=a[i];

                 imax:=i;

           end;

writeln(‘Максимальный элемент массива: ’, a[imax]);

S:=0;

for i:=1 to 10 do S:=S+a[i];

S:=S/10;

writeln(‘Среднее арифметическое: ’,S:5:3);

a[imax]:=S; a[1]:=max;

writeln(‘Преобразованный масиив:”);

for i:=1 to 10 do write(a[i]:5);

readln;

end.

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

1.            Разработать алгоритм и написать программу к заданию, согласно своему варианту; начертить блок-схему;

2.            Проверить правильность выполнения программы, запустив ее на выполнение несколько раз;

3.            Покажите работающую программу и блок-схему преподавателю, получите зачет по работе.

Варианты задания

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

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

2.        Дан одномерный массив из 15 действительных чисел. Найти среднее арифметическое элементов массива и определить порядковый номер первого элемента, меньшего среднего арифметического.

3.        Дан одномерный массив из 15 целых чисел. Найти максимальный и минимальный элементы массива и вычислить произведение их порядковых номеров.

4.        Исходный массив содержит 15 действительных чисел. Найти среднее арифметическое элементов массива, на которое разделить все элементы исходного массива

5.        Исходный массив содержит 15 целых отрицательных и положительных чисел. Переписать элементы исходного массива в другой массив, содержащий сначала положительные, а затем отрицательные элементы.

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

7.        В одномерном массиве Х, содержащем 10 действительных элементов, найти сумму и количество элементов, удовлетворяющих условию             -1.5 < Xi < 2.8.

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

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

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

 

Контрольные вопросы

1.     Что такое одномерный массив?

2.     Назовите два способа описание массивов, расскажите о них. В чем их отличие?

3.     Каким образом осуществляется ввод и вывод массивов?

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

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab08.doc

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

АЛГОРИТМЫ ОБРАБОТКИ СТРОК СИМВОЛОВ И ИСПОЛЬЗОВАНИЕ СРЕДСТВ ПАСКАЛЯ ПРИ ИХ РЕАЛИЗАЦИИ

Цель работы

·        Получить навыки работы с символьными и строковыми переменными.

Краткие теоретические и справочные сведения

I.      Символьный тип – Char

Символьный тип Charэто множество символов, которыми оперирует компьютер. Каждому символу ставится в соответствии целое число в интервале от 0 до 255 (внутреннее представление символа). Например, символу ‘b’ соответствует число 66.

Описываются символьные переменные следующим образом:

var x: char;

Для работы с символьными переменными используются следующие функции:

ü ord(x) – возвращает порядковый номер символа х (например, ord(‘b’)=66);

ü chr(x) – преобразует число в промежутке от 0 до 255 в соответствующий ему символ (например, chr(57)=’9’);

ü UpCase(x) – преобразует строчную букву в заглавную.

 

II.      Строковый тип – String

Для работы со строками символов используются переменные типа String, которые описываются следующим образом:

var str: string;

Здесь, str – строковая переменная, максимальная длина которой составляет 255 символов. Можно также описать строковую переменную меньшей длины, например:

var  strn: string[15];

Переменную типа String можно рассматривать как одномерный массив символов, поэтому к каждому элементу строки можно обращаться как к элементу массива, например:

s=’водопад’, s[3]=’д’.

Для работы со строками используются следующие функции и процедуры:

ü length(str) – возвращает длину строки str;

ü concat(str1,str2) – производит сцеплению двух строк str1 и str2 (например, concat(‘сто’,’лица’)=’столица’);

ü copy(str,m,n) – возвращает строку длины n, в которую копирует n символов строки str, начиная с символа, находящегося на позиции m (например, strn:=copy(‘магазин’,3,3) – strn=’газ’);

ü pos(substr,str) – отыскивает в строке str подстроку substr и возвращает номер позиции, с которой она начинается;

ü delete(str,m,n) – удаляет из строки str n символов, начиная с позиции m;

ü insert(substr,str,m) – подставляет в строку str подстроку substr, начиная с позиции m;

Внимание: В тексте программы значения символьных и строковых переменных заключаются в апострофы (например: х:=’b’, s:=’молоко’;).

 

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

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

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

1)    определим позицию первого пробела в строке s - р;

2)    с помощью процедуры copy скопируем в вспомогательную строковую переменную s1 символы исходной строки с 1 по р;

3)    применим функцию Upcase к первому символу в строке s1;

4)    выведем строку s1;

5)    удалим из строки s все символы с 1 по р;

6)    будем повторять действия с 1 по 5, пока в строке s не останется ни одного пробела;

7)    в строке s останется одно последнее слово исходной строки, применим функцию UpCase к первому символу строки s и выведем эту строку на экран.

Program Stroka;

var

s, s1: string;

p: integer;

begin

writeln(‘Введите строку:);

readln(s);

p:=pos(‘ ‘,s);

while (p<>0) do

   begin

           s1:=copy(s,1,p-1);

           s1[1]:=UpCase(s1[1]);

           writeln(s1);

           delete(s,1,p);

           p:=pos(‘ ‘,s);

   end;

s[1]:=UpCase(s[1]);

writeln(s);

readln;

end.

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

1.     Разработать алгоритм решения задачи, согласно своему варианту задания, написать программу;

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

3.     Показать работающую программу преподавателю, получить зачет по работе.

Варианты задания

1.     Подсчитать, сколько в строке слов, содержащих буквосочетание 'мн'.

2.     Подсчитать, сколько в строке слов нечетной длины.

3.     В заданной строке найти слова четной длины и вывести их на экран в столбик.

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

5.     С клавиатуры вводится строка, содержащая слово «дым» несколько раз. Заменить это слово словом «лед».

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

7.     В заданной строке определить, сколько раз в ней встречается сочетание букв ‘аб’, удалить данное сочетание из строки.

8.     В заданной строке найти те слова, которые начинаются и оканчиваются одной и той же буквой и вывести их  в столбик.

9.     В заданной строке найти те слова, которые начинаются с букв ‘т’ или ‘п’ и вывести их в столбик.

10. В заданной строке найти те слова, которые содержат хотя бы одну букву ‘м’ и вывести их в столбик.

Контрольные вопросы

1.        Что такое символьная переменная, строковая переменная?

2.        Какие функции и процедуры работы с символами и строками вы знаете?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab09.doc

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

СЛОЖНЫЕ СТРУКТУРЫ ДАННЫХ (ЗАПИСИ, МАССИВЫ ЗАПИСЕЙ) И РЕАЛИЗАЦИЯ АЛГОРИТМОВ ИХ ОБРАБОТКИ

Цель работы

1.     Научиться работать со сложными структурами данных;

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

Краткие теоретические и справочные сведения

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

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

<имя переменной> = record <список полей> end;

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

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

{Зададим свой тип переменных}

type

pacient = record

    fam, imya, otch, diagnoz: string;

god_r, N_uch: integer;

end;

{Опишем три переменных типа pacient}

var

   pac1, pac2, pac3: pacient;

          Для обращения к полям записи необходимо указывать имя переменной типа запись и имя поля через точку:

          <имя переменной типа запись>.<имя поля>

          Например: pac1.fam.

Чтобы упростить доступ к полям записи, используется оператор with, например:

with pac1 do

begin

fam:=’Иванов’;

imya:=’Иван’;

otch:=’Иванович’;

god_r:=1976;

N_uch:=4;

diagnoz:=’ОРЗ’;

end;

Если в программе используется много переменных типа запись (например, нужны сведения о 20 пациентах), то имеет смысл создавать массив из записей. Например:

type

pacient = record

    fam, imya, otch, diagnoz: string;

god_r, N_uch: integer;

end;

var

pac:=array[1..20] of pacient;

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

Необходимо создать массив содержащий данные о 10 читателях библиотеки: фамилия, имя, отчество, год рождения, адрес (улица, дом, квартира), количество книг на руках. Вывести данные о тех читателях, у которых на руках больше трех книг.

Программа:

Program Chitateli;

type

chitatel = record

fam, imya, otch, ul:  string;

god_r, dom, kv, kn: integer;

end;

var

chit: array[1..10] of chitatel;

i: integer;

begin

writeln(‘Введите данные о десяти читателях библиотеки:’);

for i:=1 to 10 do

with chit[i] do

begin

writeln(Введите фамилию:’); readln(fam);

writeln(Введите имя:’); readln(imya);

writeln(Введите отчество:’); readln(otch);

writeln(‘Введите год рождения:’); readln(god_r);

writeln(‘Введите улицу:’); readln(ul);

writeln(‘Введите номер дома:’); readln(dom);

writeln(‘Введите номер квартиры’); readln(kv);

writeln(‘Введите количество книг на руках’);

readln(kn);

end;

writeln(‘Данные о читателях, имеющих больше 3 книг на

руках’);

for i:=1 to 10 do

with chit[i] do

begin

 if kn>3 then

         begin

              writeln(fam);

writeln(imya); writeln(otch);

writeln(god_r);

write(ul);write(‘ ‘);write(dom);write(‘ ‘); writeln(kv);

writeln(kn);

end;

end;

readln;

end.

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

1.            Разработать алгоритм и написать программу к заданию, согласно своему варианту;

2.            Проверить правильность выполнения программы, запустив ее на выполнение несколько раз;

3.            Покажите работающую программу преподавателю, получите зачет по работе.

Варианты задания

 

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

2.           Имеются данные о 15 редких книгах: название, автор (фамилия и инициалы), год издания, место издания, место хранения. Вывести данные о самой ранней и самой поздней по времени издания книгам.

3.           Имеются данные о 10 рейсах самолетов: номер рейса, пункт назначения, время в пути (дробное число), тип самолета, время отправления (два поля записи: часы и минуты). Вывести данные о всех рейсах в Москву и Мурманск.

4.           Имеются данные о 10 автобусных маршрутах: пункт отправления, пункт назначения, время в пути (дробное число), время отправления (два поля записи: часы и минуты), количество остановок в пути. Вывести данные о маршрутах с максимальным и минимальным числом остановок в пути.

5.           Имеются данные о 10 наименованиях продукции молокозавода, поступивших в продажу: название продукта, дата изготовления (три поля записи: год, месяц и число), срок хранения в днях, закупочная цена (дробное число). Вывести данные о самом дорогом и самом дешевом продукте.

6.           Имеются данные о 10 фирмах: название фирмы, фамилия и инициалы владельца (одно поле), адрес (три поля: город, улица, дом), телефон. Вывести данные о всех фирмах из городов Самара и Саратов.

7.           Имеются данные о 8 автомашинах, находящихся в розыске: марка, цвет, год выпуска, номер, дата угона (три поля: число, месяц, год). Вывести данные о всех красных автомашинах, угнанных в 2002 году.

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

9.           Имеются данные о 10 спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. Вывести данные о спортсменах с лучшим и худшим временем.

10.       Имеются данные о 10 клиентах ателье: фамилия и инициалы, адрес (три поля: улица, дом, квартира), вид заказа, стоимость заказа. Вывести данные о клиентах ателье, сделавших самый дорогой и самый дешевый заказ.

Контрольные вопросы

1.     Что такое запись?

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

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

4.     Как обратится к полю записи?

5.     Как создать массив переменных типа запись?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab10.doc

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

РЕАЛИЗАЦИЯ АЛГОРИТМОВ ТАБЛИЧНОГО ПРЕДСТАВЛЕНИЯ ДАННЫХ СЛОЖНОЙ СТРУКТУРЫ НА ЭКРАНЕ

Цель работы

·        Научиться оформлять табличный вывод на экран данных сложной структуры.

Краткие теоретические и справочные сведения

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

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

     Фамилия      |   Имя  |  Отчество  |  год р |  N уч | диагноз

Иванов              | Иван   | Иванович  | 1976   | 4        | ОРЗ

Петров              | Петр    | Петрович  | 1955   | 2        |  пневмония

Для начала, на экран нужно вывести шапку таблицы. Создавая шапку таблицы, заранее определяем, сколько позиций отводим под каждое поле записи. Например, под фамилию – 15 позиций, под имя – 9, под отчество – 14, под год рождения – 7 (4 под сам год рождения и три позиция – пробел), для номера участка – 3 (две позиции под сам номер участка), под диагноз – 21 позиция.

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

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

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

Программа:

Program Tablica;

type

pacient = record

    fam, imya, otch, diagnoz: string;

god_r, N_uch: integer;

end;

var

pac: array[1..10] of pacient;

i, j, k: integer;

begin

writeln(‘Введите данные о 10 пациентах поликлиники:’);

for i:=1 to 10 do

with pac[i] do

begin

write(Введите фамилию:’); readln(fam);

write(Введите имя:’); readln(imya);

write(‘Введите отчество:’); readln(otch);

write(‘Введите год рождения:’); readln(god_r);

write(‘Введите номер участка:’); readln(N_uch);

write(Введите диагноз:’); readln(diagnoz);

end;

writeln(‘Данные о пациентах, родившихся позже 1975 года:’);

{Формируем шапку таблицы:}

{Для того, чтобы название столбца «Фамилия» расположилось         посередине, выведем сперва четыре пробела, затем слово ‘фамилия’ и снова четыре пробела – всего 15 позиций; для полей «имя» и «отчество» поступаем аналогичным образом (3 пробела – ‘имя’  – три пробела;  3 пробела – ‘отчество’ – 3 пробела)}

write(‘    ‘,’Фамилия’,    ‘); write(‘|’);

write(‘   ‘,’имя’,’   ‘); write(‘|’);

write(‘   ‘,’отчество’,’   ‘); write(‘|’);

{Выведем заголовок для столбца «год рождения»}

write(год.р); write(‘|’);

{Выведем заголовок для столбца «номер участка»}

write(‘ N ‘); write(‘|’);

{Выведем заголовок для столбца «диагноз»: 8 пробелов – ‘диагноз’ – 8 пробелов}

write(‘        ‘,’диагноз’,’        ‘);

writeln;

{Выведем черту под заголовками столбцов}

for i:=1 to 70 do write(‘_’);

writeln;

{Будем отбирать записи и выводить их в таблице:}

for i:=1 to 10 do

with pac[i] do

      if god_r>1975 then

begin

while length(fam)<15 do fam:=fam+’ ‘;

write(fam); write(‘|’);

while length(imya)<9 do imya:=imya+’ ‘;

write(imya); write(‘|’);

while length(otch)<14 do otch:=otch+’ ‘;

write(otch); write(‘|’);

write(‘ ‘,god_r,’  ‘); write(‘|’);

write(‘  ‘,N_uch); write(‘|’);

while length(diagnoz)<21 do

diagnoz:=diagnoz+‘ ’;

writeln(diagnoz);

end;

readln;

end.

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

1.     Разработать алгоритм и написать программу к заданию, согласно своему варианту;

2.     Проверить правильность выполнения программы, запустив ее на выполнение несколько раз;

3.     Покажите работающую программу преподавателю, получите зачет по работе.

Варианты задания

1.     Имеются данные о 10 студентах группы: фамилия и инициалы (одно поле записи), год рождения, адрес (улица, дом, квартира), средний балл при поступлении. В виде таблицы вывести на экран данные о студентах со средним проходным баллом, большим 3,8;

2.     Имеются данные о 12 редких книгах, хранящихся с библиотеке: название, автор (фамилия и инициалы), год издания, место издания, инвентарный номер. В виде таблицы вывести данные о книгах, изданных в Санкт-Петербурге;

3.     Имеются данные о 10 рейсах самолетов: номер рейса, пункт назначения, время в пути (дробное число), тип самолета, время отправления (два поля записи: часы и минуты). В виде таблицы вывести данные о рейсах, вылетающих после десяти вечера, но до полуночи;

4.     Имеются данные о 10 автобусных маршрутах: пункт отправления, пункт назначения, время в пути (дробное число), время отправления (два поля записи: часы и минуты), количество остановок в пути. В виде таблицы вывести данные о рейсах, делающих более трех остановок в пути;

5.     Имеются данные о 10 наименованиях продукции молокозавода, поступивших в продажу: название продукта, дата изготовления (три поля записи: год, месяц и число), срок хранения в днях, закупочная цена (дробное число). В виде таблицы вывести данные о продуктах, выпущенный в июле 2004 года;

6.     Имеются данные о 10 фирмах: название фирмы, фамилия и инициалы владельца (одно поле), адрес (три поля: город, улица, дом), телефон. В виде таблицы вывести данные о владельцах фирм, фамилия которых начинается с буквы М;

7.     Имеются данные о 8 автомашинах, находящихся в розыске: марка, цвет, год выпуска, номер, дата угона (три поля: число, месяц, год). В виде таблицы вывести данные о машинах, угнанных в июле 2002 года;

8.     Имеются данные о 10 сотрудниках фирмы: фамилия, имя, отчество, год рождения, должность, год поступления на работу. В виде таблицы вывести данные о сотрудниках фирмы, устроившихся на работу в период с 1999 по 2002 год включительно;

9.     Имеются данные о 10 спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. В виде таблицы вывести данные о спортсменах, рост которых больше 175 см;

10. Имеются данные о 10 клиентах ателье: фамилия и инициалы, адрес (три поля: улица, дом, квартира), вид заказа, стоимость заказа. В виде таблицы вывести данные о клиентах, проживающих на улице Международная.

Контрольные вопросы

1.     Для чего нужен табличный вывод?

2.     Как оформить шапку таблицы?

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

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab11.doc

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

ПОДПРОГРАММЫ И РЕАЛИЗАЦИЯ ИХ В ВИДЕ ПРОЦЕДУР И ФУНКЦИЙ. ПРОЦЕДУРА БЕЗОПАСНОГО ВВОДА.

Цель работы

1.             Получить практические навыки в организации и использовании процедур и функций;

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

Краткие теоретические и справочные сведения

В языке Turbo Pascal широко используется возможность выделять группу операторов в виде подпрограммы.

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

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

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

Существуют два вида подпрограмм: процедура и функция. Для указания вида служит заголовок подпрограммы: PROCEDURE или FUNCTION, соответственно.

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

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

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

Допускается многократная вложенность подпрограмм в программе.

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

Организация "безопасного" ввода данных

Цель проверки ввода заключается в защите от ошибок пользователя при наборе данных с клавиатуры. Такие проверки целесообразно проводит при вводе любых данных.

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

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

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

val(s,p,cod);

Здесь, s – переменная типа string, рпеременная типа integer или real, cod – код ошибки. Значение cod будет равно нулю, если преобразование проведено верно, иначе в переменной cod запомнится номер позиции, на которой произошла ошибка преобразования. Например:

val(‘15’,m,cod);    ®   m=15 и cod=0.

val(‘2b’,m,cod)     ®   cod=2.

Пример выполнения работы

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

·фамилия, имя и отчество – содержат только русские буквы и знак дефиса;

·год рождения – целое положительное число;

·номер участка – натуральное число в промежутке от одного до шести;

·температура – вещественное положительное число.

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

Напишем программу к этой задаче:

Program Proverka_vvoda;

 

type

pacient = record

    fam, imya, otch: string;

god_r, N_uch: integer;

temp: real;

end;

 

var

pac: array[1..10] of pacient;

i: integer;

 

procedure inp_rus(vopros: string; var p: string);

var

 j: integer;

fl: boolean  

begin

  repeat

writeln(vopros);

fl:=True;

readln( p);

for j:=1 to length(p) do

      if  not( p[j] in ['А'..'п','р'..'я',’-‘]) then

fl:=false;

                   if not(fl) then writeln(Недопстимый ввод);

until fl;

end;

 

procedure inp_integer(vopros: string; var p: integer);

var

s: string;

cod: integer;

begin

repeat

writeln(vopros);

readln(s);

val(s,p,cod);

if cod<>0 then writeln(‘Требуется ввести целое число!’);

until cod=0;

end;

 

procedure inp_real(vopros: string; var p: real);

var

s: string;

cod: integer;

begin

repeat

writeln(vopros);

readln(s);

val(s,p,cod);

if cod<>0 then writeln(‘Требуется ввести

          действительное число!’);

until cod=0;

end;

 

procedure inp_uchastok(vopros: string; var z: integer);

var

fl: boolean;

begin

repeat

fl:=False;

inp_integer(vopros, z);

if (z in [1..6]) then fl:=True else

writeln(‘Номер участка – от 1 до 6!’);

until fl;

end;

 

begin

writeln(‘Введите данные о 10 пациентах поликлиники:’);

for i:=1 to 10 do

with pac[i] do

begin

inp_rus(Введите фамилию:’, fam);

inp_rus(Введите имя:’, imya);

inp_rus(‘Введите отчество’, otch);

inp_integer(‘Введите год рождения:’, god_r);

inp_uchastok(‘Введите номер участка:’, N_uch);

inp_real(‘Введите температуру:’, temp);

end;

writeln(‘Данные о пациентах, наблюдающихся на участке

№3);

for i:=1 to 10 do

with pac[i] do

if N_uch=3 then

begin

writeln(fam,’ ‘,imya,’ ‘,otch);

writeln(‘Год рождения: ‘, god_r);

writeln(‘Температура: ‘, temp:4:1);

end;

readln;

end.

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

1.     Разработать алгоритм и написать программу к заданию, согласно своему варианту;

2.     Проверить правильность выполнения программы, запустив ее на выполнение несколько раз;

3.     Покажите работающую программу преподавателю, получите зачет по работе.

Варианты задания

1.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·        фамилия и инициалы, улица – русские буквы, точка и знак дефиса;

·         год рождения – целое число от 1970 до 1985;

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

·         средний балл при поступлении – дробные положительные числа.

2.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    автор - русские буквы, точка и знак дефиса;

·                    год издания – целое число от 1700 до 2002;

·                     место издания и место хранения – русские буквы и знак дефиса;

·                    инвентарный номер – целое положительное число;

3.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    пункт назначения - русские буквы и знак дефиса;

·                    время в пути – дробное положительное число;

·                    время отправления: часы (целое число от 0 до 23) и минуты (целое число от 0 до 59).

4.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    пункт отправления и пункт назначения - русские буквы и знак дефиса;

·                    время в пути – дробное положительное число;

·                    время отправления (часы и минуты), количество остановок в пути – целые положительные числа.

5.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    название продукта – русские буквы;

·                    год изготовления – целое число от 2000 до 2004;

·                    месяц и число изготовления, срок хранения в днях – целые положительные числа);

·                    закупочная цена - дробное  положительное число.

6.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    фамилия и инициалы владельца, город и улица - русские буквы, точка и знак дефиса;

·                    телефон – знак дефиса и цифры;

·                    дом – целое положительное число;

7.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    марка, цветрусские буквы;

·                    год выпуска – целое число от 1950 до 2004;

·                     номер – русские  буквы и цифры.

8.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·                    фамилия, имя, отчество, должность – русские буквы и знак дефиса;

·                    год рождения – целое число от 1935 до 1985;

·                    год поступления на работу – целое число от 1980 до 2000.

9.     В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·          фамилия и инициалы – русские буквы, точка и знак дефиса;

·          год рождения – целое число от 1970 до 1990;

·          рост – целое число от 150 до 210;

·          лучшее время – дробное положительное число.

10.   В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:

·          фамилия и инициалы, вид заказа, улица - русские буквы, точка и знак дефиса;

·          дом, квартира – целое положительное число;

·          стоимость заказа – дробное положительное число.

Контрольные вопросы

 

1.     Для чего используются процедуры и функции?

2.     В чем отличие локальных и глобальных переменных?

3.     Как вызвать процедуру из текста программы?

4.     Где в тексте программы располагается текст процедуры или функции?

5.     Для чего используется «безопасный» ввод? С помощью чего он организуется?

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab12.doc

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

РЕАЛИЗАЦИЯ ВЗАИМОДЕЙСТВИЯ ПРОГРАММЫ С ФАЙЛОВОЙ СИСТЕМОЙ MS DOS

Цель работы

1.     Научится организовывать взаимодействие программы с файловой системой MS DOS;

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

Краткие теоретические и справочные сведения

Файл это именованная область данных на диске.

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

Компонентами текстового файла являются символы. Текстовый файл на внешних носителях хранится также в символьном виде и их можно просматривать и редактировать текстовыми редакторами. Текстовый файл должен быть разбит на строки (записи переменной длины), каждая из которых заканчивается специальным символом – признаком конца строки. Текстовый файл имеет расширение ".txt".

Типизированный файл представляет собой структурированный тип данных. Компонентами типизированного файла являются записи одного типа и одной длины. На внешнем устройстве типизированный файл хранится в двоичном формате. Типизированный файл имеет расширение ".dat".

Число элементов (записей) в файле не фиксировано. Файл, не содержащий ни одного элемента, называется пустым, его длина равна нулю.


Описание типизированного файла:

I способ

 

type

<имя типа> = file of <базовый тип>;

var

        <имя файловой переменной> of <имя типа>;

 

II способ

 

Var

          <имя файловой переменной>: file of <базовый тип>;

 

Здесь, базовый тип – любой стандартный тип данных или введенный пользователем, кроме файлового типа.

Описание текстового файла:

          var

                <имя файловой переменной>: text;

        При работе с файлами используются следующие процедуры и функции:

·        Assign(f,'<имя файла>.<расширение файла>) – процедура, связывающая имя файловой переменной с именем файла на диске.

·        rewrite(f) открытие файла для записи. Внимание: если применить эту команду к файлу, уже заполненному данными, то вся находящаяся в нем информация будет потеряна!

·        Reset(f) – открытие файла для чтения.

·        Close(f) – закрытие файла. Внимание: если файл был открыт с помощью одной из вышеуказанных команд, то после выполнения с ним необходимых действий, файл нужно обязательно закрыть.

·        EOF(f) – логическая операция: возвращает значение True, если достигнут конец файла, и значение False в противном случае.

·        Read(f,a), readln(f,a) – чтение из файла переменной а.

·        Write(f,a), writeln(f,a) – запись в файл переменной а.

Пример выполнения работы

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

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

·        Данные в типизированном файле будут храниться в виде записей. Каждая запись будет иметь 4 поля: фамилия наблюдателя (строковая переменная), температура воздуха (целое число), скорость (произвольное дробное число) и направление (строковое) ветра.

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

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

Внимание: создаваемые файлы должны храниться на вашем диске Х!!! Пусть имя внешнего файла – Meteo.dat. Первая вызываемая процедура в программе будет процедура, связывающая имя файловой переменной (Fmeteo) с именем файла на диске: ASSIGN(Fmeteo,'Х:\Meteo.dat'). Далее следует открыть файл для записи, используя команду REWRITE(Fmeteo), при этом на диске создается файл Meteo.dat нулевой размерности.

·        Поскольку для выполнения последнего пункта задачи необходимо записать данные в текстовый файл, следует дать ему внешнее имя (Meteo.txt), связать этот файл с переменной типа текстовый файл (Ftext) и открыть для записи, используя REWRITE(Ftext). При этом на диске создается файл Meteo.txt нулевой размерности.

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

·        По окончании работ по созданию файла требуется закрыть файл, используя процедуру CLOSE(Fmeteo).

·        Далее открыть ранее созданный файл для чтения, используя процедуру RESET(Fmeteo). Затем организовать цикл, в котором читаются записи из файла с первой и до последней; при этом, если в читаемой записи значение поля температуры окажется меньше среднего значения, запись переписывается в текстовый файл. Одновременно с записью в файл осуществляется вывод данных на экран.

·        По окончании работы закрываются оба файла.

Текст программы:

Program Meteo_data;

type

        t_meteo=record

                name: string;

                temp: integer;

                skor: real;

                napr: string;

        end;

var

        meteo: t_meteo;

        Fmeteo: file of t_meteo;

        Ftext: text;

        sr_temp: real;

        otvet: char;

        n: integer;

begin

        assign( Fmeteo, 'X:\Meteo.dat'); 

rewrite( Fmeteo);

        sr_temp:=0; n:=0;

        repeat

                n:=n+1;

                with meteo do

                        begin

                                write(' Введите фамилию:  ');  readln( name);

                                write(' Введите температуру: ');  readln( temp);

                                write(' Введите скорость ветра:  ');  readln(skor);

                                write(' Введите направление: ');  readln(napr);

sr_temp:=sr_temp+temp;

                        end;

                write( Fmeteo, meteo);

                write(Продолжить ввод? (Д/Н));

                readln(otvet);

        until (otvet = ’Н’) or (otvet = ‘н’);

        close( Fmeteo);

sr_temp:=sr_temp/n;

writeln(Средняя температура: ‘,sr_temp:5:2);

        reset( Fmeteo);

        assign( Ftext, 'X:\Meteo.txt');

rewrite( Ftext);

        while not (eof(Fmeteo)) do

            with meteo do

             begin

                 read( Fmeteo, meteo);

                if temp<sr_temp then

begin

                                 writeln( Ftext, name, ' ', temp, ' ', skor, ' ',napr);

                                writeln( name, ' ', temp, ' ', skor:5:2, ' ',napr);

                         end;

    end;

        close(Fmeteo); 

close(Ftext);

        readln;

end.

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

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

          Разработать алгоритм и написать программу решения задачи, согласно своему варианту задания.

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

          Показать работающую программу преподавателю и получить зачет по работе.

Варианты задания

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

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

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

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

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

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

7.     Создать типизированный файл, содержащий данные о автомашинах, находящихся в розыске: марка, цвет, год выпуска, номер, дата угона (три поля: число, месяц, год). Переписать в текстовый файл и вывести на экран данные о машинах, угнанных в июле 2002 года;

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

9.     Создать типизированный файл, содержащий данные о спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. Переписать в текстовый файл и вывести на экран данные о спортсменах, рост которых больше 175 см;

10. Создать типизированный файл, содержащий данные о клиентах ателье: фамилия и инициалы, адрес (три поля: улица, дом, квартира), вид заказа, стоимость заказа. Переписать в текстовый файл и вывести на экран данные о клиентах, проживающих на улице Международная.

Контрольные вопросы

1.     С какими типами файлов позволяет работать ИС Turbo Pascal? Чем они отличаются?

2.     Какие процедуры и функции для работы с файлами вы знаете?

3.     Чем отличаются процедуры rewrite(f) и reset(f)?

4.     Как записать данные в файл? Как прочесть данные из файла?

5.     Может ли не совпадать тип файла и тип записываемых в него данных?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Выбранный для просмотра документ lab13.doc

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

КОМПЛЕКСНАЯ ЗАДАЧА

Цель работы

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

2.     Отработать навыки по написанию программ на языке Turbo Pascal.

 

Пример выполнения работы

Задача:

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

·        фамилия и инициалы – русские буквы, пробел, точка и знак дефиса;

·        номер вагона – целое число от 1 до 25;

·        тип вагона – символ «п», «к» или «о» (плацкартный, купейный или общий);

·        место – целое число от 1 до 81;

·        стоимость билета – дробное число, не меньшее 100.

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

Примерный текст программы:

program Passajir;

 

type

        Bilety = record

                fio, typ_v: string;

                N_v, mesto: byte;

                stoim: real;

        end;

 

var

        bilet: bylety;

        fbilet: file  of bilety;

        ftext: text;

        n: byte;

        S: real;

        otvet: string;

 

procedure prov_fio (vopros: string; var f: string);

var

j: integer;

fl: boolean  

begin

repeat

fl:=True;

writeln(vopros);

readln(f);

for j:=1 to length(f) do

if  not( f[j] in ['А'..'п','р'..'я',’-‘,’.’,’ ‘]) then fl:=false;

                if not(fl) then writeln(Недопустимый ввод!’);

until fl;

end;

 

procedure prov_tip (vopros: string; var t: char);

var

        fl: boolean;

begin

        repeat

                fl:=false;

                writeln(vopros);

                readln(t);

                if (t=’к’) or (t=’п’) or (t=’о’) then fl:=true

                        else writeln(Недопустимый ввод!);

                until fl;

end;

 

procedure prov_nom (vopros: string; var nom: byte);

var

        st: string;

        cod: integer;

begin

repeat

writeln(vopros);

readln(st);

val(st,nom,cod);

                        if cod=0 then

                                if (nom<1) or (nom>25) then cod:=1;

if cod<>0 then

writeln(‘Требуется ввести целое число

от 1 до 25!’);

until cod=0;

end;

 

procedure prov_mesto (vopros: string; var m: byte);

var

        st: string;

        cod: integer;

begin

repeat

writeln(vopros);

readln(st);

val(st,m,cod);

                        if cod=0 then

                                if (m<1) or (m>81) then cod:=1;

if cod<>0 then

writeln(‘Требуется ввести целое число

от 1 до 81!’);

until cod=0;

end;

 

procedure prov_stoim (vopros: string; var s: real);

var

st: string;

cod: integer;

begin

repeat

writeln(vopros);

readln(st);

val(st,s,cod);

                if cod=0 then

                        if (s<100) then cod:=1;

if cod<>0 then writeln(‘Требуется ввести действительное

число, не меньшее 100!’);

until cod=0;

end;

 

begin

        assign(fbilet,’bilet.dat’);

        assign(ftext,’bilet.txt’);

        rewrite(fbilet);

        n:=0; S:=0;

        writeln(Введите данные о купленных билетах);

        repeat

                n:=n+1;

                with bilet do

                        begin

                                prov_fio(Введите фамилию и инициалы

пассажира:’,fio);

                                prov_tip(Введите тип вагона:’,tip_v);

                                prov_nom(Введите номер вагона:’,N_v);

                                prov_mesto(Введите место:’,mesto);

                                prov_stoim(Введите стоимость билета’,stoim);

                                S:=S+stoim;

                        end;

                write(fbilet,bilet);

                write(Продолжить ввод? (Д/Н) );

                readln(otvet);

        until (otvet=’Н’) or (otvet=’н’);

        close(fbilet);

        S:=S/n;

        writeln(Средняя стоимость билета составляет ‘,S:5:2,’ руб.);

        writeln(Данные о пассажирах, купивших билеты в плацкартный

вагон:');

        reset(fbilet);

        rewrite(ftext);

        while not(eof(fbilet)) do

                begin

                        read(fbilet,bilet);

                        with bilet do

                           if tip_v = ’пthen

                                  begin

                                     write(ftext,fio,’ ‘,tip_v,’ ‘,N_v,’ ‘,mesto,

’ ‘,stoim);

                                     writeln(fam,’ ‘,tip_v,’ ‘,N_v,’ ‘,mesto,

’ ‘,stoim:5:2);

                                   end;

                end;

        close(fbilet);

        close(ftext);

        readln;

end.

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

1.     Разработать алгоритм и написать программу согласно своему варианту задания;

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

3.     Показать работающую программу преподавателю и получить зачет по работе.

Варианты задания

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

·        марка – русские и латинские буквы, цифры, пробел и знак дефиса;

·        цвет – русские буквы, пробел и знак дефиса;

·        год выпуска – целое число от 1960 до 2004;

·        объем двигателя – дробное  число от 1 до 6;

·        стоимость – дробное число, не меньшее 1500.

Переписать в текстовый файл и вывести на экран данные обо всех автомобилях с ценой выше среднего и объемом двигателя не меньшим 2,5 литра.

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

·        место отдыха – русские буквы, пробел и знак дефиса;

·        день – целое число от 1 до 31;

·        месяц – целое число от 1 до 12;

·        год – целое число, не меньшее 2004;

·        стоимость путевки – дробное число, не меньшее 150.

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

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

·        фирма-изготовитель – русские и латинские буквы, пробел и знак дефиса;

·        размер диагонали экрана – целое  число, не меньшее 30;

·        вес – дробное число, не меньшее 1;

·        цвет корпуса – русские буквы, пробел и знак дефиса;

·        стоимость – дробное число, не меньшее 3000.

Переписать в текстовый файл и вывести на экран данные обо всех телевизорах с ценой ниже среднего и размером диагонали экрана не меньше 50 см.

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

·        фамилия и инициалы матери – русские буквы, пробел, точка и знак дефиса;

·        возраст матери – целое число от 16 до 40;

·        пол ребенка – символ “м” или “ж”;

·        рост ребенка – целое число, не меньшее 45;

·        вес ребенка – дробное число, не меньшее 2,5;

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

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

·        фамилия и инициалы – русские буквы, точка, пробел и знак дефиса;

·        год рождения – целое число, не меньшее 1985;

·        город – русские буквы, пробел и знак дефиса;

·        занятое место – целое число от 1 до 25;

·        набранный балл – дробное положительное число;

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

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

·        фамилия и инициалы – русские буквы, пробел, точка и знак дефиса;

·        сумма на счете – дробное положительное число;

·        число – целое число от 1 до 31;

·        месяц – целое число от 1 до 12;

·        год – целое число, не меньшее 1990.

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

7.     Создать типизированный файл, содержащий данные о квартирах, предлагаемых на продажу риэлторами (количество комнат, адрес – улица, дом и квартира, стоимость в долларах США). При вводе данных обеспечить проверку:

·        количество комнат – целое число от 1 до 6;

·        улица – русские буквы, пробел, знак дефиса и цифры;

·        дом – цифры, буквы и знак дроби (например: 4а или 2/5);

·        квартира – целое число, не меньшее единицы;

·        стоимость – дробное число, не меньшее 1000;

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

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

·        пункт назначения – русские буквы, пробел и знак дефиса;

·        часы – целое число от 0 до 23;

·        минуты – целое число от 0 до 59;

·        категория поезда – символ «п» или «с» (пассажирский или скорый);

·        время в пути – дробное число, не меньшее 10.

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

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

·        название магазина – русские буквы, кавычки, пробел и знак дефиса;

·        фамилия и инициалы – русские буквы, пробел, точка и знак дефиса;

·        улица – русские буквы, пробел, знак дефиса и цифры;

·        дом – цифры, буквы и знак дроби (например: 4а или 2/5);

·        сумма сделки – дробное число, не меньшее 1000.

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

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

·     ФИО – русские буквы, пробел и знак дефиса;

·     фамилия и инициалы – русские буквы, точка, пробел и знак дефиса;

·     тема дипломной работы – русские и латинские буквы, пробел, знак дефиса, точка и кавычки;

·     количество страниц в работе – целое число, не меньшее 200;

·     оценка – целое число от 2 до 5.

Переписать в текстовый файл и вывести на экран данные обо всех дипломных работах с рекомендуемой оценкой «4» и «5» и количеством страниц больше среднего.

Контрольные вопросы

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие "Лабораторные работы PASCAL""

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Фитнес-тренер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 661 775 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

КУРС ДОПОЛНИТЕЛЬНЫХ ЗАДАНИЙ ПО РЕАЛИЗАЦИИ ГЕОМЕТРИЧЕСКИХ ВЫЧИСЛЕНИЙ НА ЯЗЫКЕ PYTHON С АВТОМАТИЧЕСКОЙ ПРОВЕРКОЙ (8 класс)
  • Учебник: «Информатика», Босова Л.Л., Босова А.Ю.
  • Тема: Глава 3. Начала программирования
  • 22.01.2020
  • 1033
  • 30
«Информатика», Босова Л.Л., Босова А.Ю.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 12.08.2020 863
    • ZIP 404.3 кбайт
    • 13 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Мисюлин Андрей Николаевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Мисюлин Андрей Николаевич
    Мисюлин Андрей Николаевич
    • На сайте: 7 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 1317
    • Всего материалов: 2

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 191 человек из 54 регионов
  • Этот курс уже прошли 971 человек

Курс повышения квалификации

Компьютерная грамотность для пенсионеров

36 ч. — 180 ч.

от 1580 руб. от 940 руб.
Подать заявку О курсе
  • Этот курс уже прошли 22 человека

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Мини-курс

Анализ эффективности проектов

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Судебные процессы и взыскание убытков: правовые аспекты и процедуры

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 24 человека из 14 регионов
  • Этот курс уже прошли 11 человек

Мини-курс

Hard-skills современного педагога

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 77 человек из 33 регионов
  • Этот курс уже прошли 18 человек