Главная страница
Навигация по странице:

  • ОТЧЕТ по лабораторной работе №3 по дисциплине Программирование Студент гр №з-511П12-5 ДР. Хисматуллин Томск 2022 2 Содержание 1. Введение

  • 3. Задача 2 3.1 Анализ задачи 2…………………………………………11 3.2 Алгоритм решения задачи 2…………………………..11 3.3 Тест программы 3.4 Текст программы

  • Отчет по программированию, ЛБ№3, Хисматуллин. Отчет по лабораторной работе 3 по дисциплине Программирование Студент гр


    Скачать 1.08 Mb.
    НазваниеОтчет по лабораторной работе 3 по дисциплине Программирование Студент гр
    Дата18.04.2022
    Размер1.08 Mb.
    Формат файлаpdf
    Имя файлаОтчет по программированию, ЛБ№3, Хисматуллин.pdf
    ТипОтчет
    #483595

    1 Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра компьютерных систем в управлении и проектировании (КСУП)
    ОТЧЕТ по лабораторной работе №3 по дисциплине Программирование Студент гр №
    з-511П12-5 ДР. Хисматуллин Томск 2022

    2 Содержание

    1. Введение
    2. Задача 1 Анализ задачи 1……………………………………………..6 Алгоритм решения задачи 1………………………………6
    2.3 Тест программы
    2.4 Текст программы
    2.5 Блок-схема…………………………………………………10
    3. Задача 2
    3.1 Анализ задачи 2…………………………………………11
    3.2 Алгоритм решения задачи 2…………………………..11
    3.3 Тест программы
    3.4 Текст программы
    3.5 Блок схема

    3 Введение Работа с файлами. Для организации ввода-вывода могут быть определены специальные переменные файловых типов, которые считаются представителями файлов в программе. С каждой переменной файлового типа также связано понятие текущего указателя файла. Текущий указатель — скрытая переменная (те. неявно описанная вместе с файловой переменной, которая обозначает указывает) на некоторый конкретный элемент файла. При работе с файлами перед и после операций ввода-вывода необходимо выполнить стандартные процедуры assign, reset, rewrite, close Процедуры write ив отличие от многих других процедур, могут вызываться с различным числом параметров, и эти параметры могут иметь различные типы. Процедуры write ив отличие от многих других процедур, могут вызываться с различным числом параметров, и эти параметры могут иметь различные типы. Процедура read предназначена для чтения значений из файла в программу. Первым параметром должно быть имя файловой переменной, к которой была применена одна из операций открытия (reset или rewrite). Далее должны следовать переменные, в которые будут помещаться читаемые из файла значения. Тип этих переменных должен совпадать с базовым типом файла из первого параметра. Выполнение процедуры read

    4 происходит следующим образом. Начиная с текущей позиции указателя файла, будут последовательно читаться значения, содержащиеся в файле. Каждое прочитанное значение будет присваиваться очередной переменной из тех, которые указаны в вызове процедуры. После каждого акта чтения указатель файла будет смещаться наследующую позицию. Если указатель файла указывает наконец файла, то чтение невозможно. Функция eof() — булевская функция, равна истине, если имеется ситуация конец файла. Процедура write позволяет записывать в файл информацию из программы. Первым параметром этой процедуры должна быть файловая переменная, открытая процедурой reset или rewrite. Далее должен идти список переменных, тип которых совпадает с базовым типом файла из первого параметра. Выполнение процедуры write. Значение очередной переменной будет помещено в файл вместо, отмеченное текущим указателем. После этого текущий указатель будет передвинут на одну позицию, и действия повторяются для следующей переменной из списка параметров. Рекурсия Объект называетсярекурсивным, если он содержит сам себя или определен с помощью самого себя. Рекурсия в программировании — один из важнейших принципов построения подпрограмм. Если процедура P содержит явное обращение к самой себе, то она называется прямо рекурсивной если P содержит обращение к процедуре Q, которая содержит (прямо или косвенно)

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

    6 Основная часть Задача 1
    type rad = file of integer; Описать процедуру p(f,g) от двух файлов типа а, которая из файла f переписывает в пустой файл g сначала все положительные числа, а потом все отрицательные. Указание введите файл f (последний элемент равен 0). Выполните процедуру p(f,g). Распечатайте файл g. Задача 2
    Описать рекурсивную функцию letter (s), которая подсчитывает количество букв в строке s. Алгоритм решения задачи 1.
    while not eof(f) do
    // Задаем цикл с предусловием, условие - функция конца файла
    begin
    read(f,a);
    // Считываем числа из файла f
    if a>
    0
    then write(g,a);
    // Если число "а" положительное, то записываем в файл g
    end; close(f);
    // Закрываем файл f reset(f);
    // Снова открываем файл f
    while not eof(f) do
    // Задаем цикл с предусловием, условие - функция конца файла В данной задаче мы используем переменную ас типом integer, так как вводимые числа являются целыми.

    7

    8 Текст программы PR1;
    uses crt;
    // Вызываем дополнительный модуль
    type rad=file of
    integer
    ;
    // Задаем имя файлового типа
    procedure P(var f,g:rad);
    // Задаем имя и параметры процедуры
    var a:
    integer
    ;
    // Задаем тим переменной "а" для чисел, вводимых в программу
    begin
    reset(f);
    // Открываем для чтения файл f
    while not eof(f) do
    // Задаем цикл с предусловием, условие - функция конца файла
    begin
    read(f,a);
    // Считываем числа из файла f
    if a>
    0
    then write(g,a);
    // Если число "а" положительное, то записываем в файл g
    end; close(f);
    // Закрываем файл f reset(f);
    // Снова открываем файл f
    while not eof(f) do
    // Задаем цикл с предусловием, условие - функция конца файла
    begin
    read(f,a);
    // Считываем числа из файла f
    if a<
    0
    then
    // Задаем условие, если число меньше 0
    begin
    write(g,a);
    // Записываем числа в файла g
    end;
    end; close(f);
    // Закрываем файл f close(g);
    // Закрываем файл g
    end;
    var f,g:rad;
    // Задаем имя файлового типа

    9 a:
    integer
    ;
    // Задаем тим переменной "а" для чисел, вводимых в программу
    begin
    clrscr;
    // Очищаем экран assign(f,
    'filef'
    );
    // Связываем файл с файловой переменной f rewrite(f);
    // Создаем и открываем файл f assign(g,
    'fileg'
    );
    // Связываем файл с файловой переменной g rewrite(g);
    // Создаем и открываем файл g writeln (Введите числа в файл f 0 - окончание ввода
    // Выводим на экран сообщение
    repeat
    // Цикл с постусловием. Записываем в файл f числа, введенные с клавиатуры readln (a); write(f,a);
    until a=
    0
    ;
    // Цикл работает до тех пор, пока мы не введем число 0 writeln;
    // Создаем пустую строку
    P (f,g);
    // Вызываем процедуру Р reset(g);
    // Открываем файл g Содержание нового файла
    // Выводим на экран сообщение
    while not eof(g) do
    // Цикл с предусловием, выполняется пока "не конец файла"
    begin
    read(g,a);
    // Читаем из файла g числа write(a,
    ' '
    );
    // Выводим на экран числа через пробел
    end; close(g);
    // Закрываем файл readln
    // Задержка экрана
    end.

    10

    11 Алгоритм решения задачи 2.
    if s[i] in bk then begin inc(k);writeln(
    'k1='
    ,k); end;
    // Условие, если символ под порядковым номером i входит в bk, тогда "к" увеличиваетсч на единицу
    if ithen begin k:=k+letters(s,i+
    1
    );writeln(
    'k2='
    ,k); end;
    // Условие, если i меньше длинны строки, ток к+результат функции для следующего символа letters:=k;
    // присваиваем в результат функции "кВ данной задаче мы вводим переменную к, которая относится к типу integer. Так как количество символов является целым числом.

    12

    13 Текст программы
    program PR2;
    uses crt;
    const bk=[
    'A'
    'Z'
    ,
    'a'
    'z'
    ,
    'А'
    'я'
    ,
    'ё'
    ,
    'Ё'
    ];
    // Задаем константу bk для множества букв алфавитов
    function letters(s:
    string
    ;i:
    integer
    ):
    integer
    ;
    // Описываем функцию с аргументами s и i
    var k:
    integer
    ;
    // Задаем переменную "к"
    begin
    if s[i] in bk then inc(k);
    // Условие, если символ под порядковым номером i входит в bk, тогда "к" увеличиваетсч на единицу
    if ithen k:=k+letters(s,i+
    1
    );
    // Условие, если i меньше длинны строки, ток к+результат функции для следующего символа letters:=k;
    // присваиваем в результат функции "к"
    end;
    var s:
    string
    ;
    // Описываем переменную s строкового типа
    begin Введите строку
    // Вывод сообщения на экран readln(s);
    // вводим строку Количество букв)
    // Выводит на экран количесвто букв в строке
    end.

    14


    написать администратору сайта