Файлы паскаль задачи с решением

Файлы паскаль задачи с решением

Цель урока: обобщение и систематизация знаний по теме: “Текстовые файлы” с помощью решения задач

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

Воспитательная – содействовать в ходе урока формированию внимательности, самостоятельности.

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

Тип урока: урок решения задач

  • Организационный этап (5 мин)
  • Вводно-мотивационный этап (15 мин)
  • Операционно-содержательный этап (45 мин)
  • Рефлексивно-оценочный этап (10 мин)
  • Домашнее задание (5 мин)
  • Оборудование: ПК, программное обеспечение

    Ход работы

    1. Организационный этап.

    Здравствуйте, ребята, садитесь. Сегодня на уроке мы с вами будем решать задачи на тему “Текстовые файлы” используя язык программирования Turbo Pascal.

    2. Вводно-мотивационный этап (актуализация опорных знаний).

    Опрос на тему: “Текстовые файлы”.

    1. Что такое файл?
    2. Для каких целей используются файлы?
    3. Каковы требования к именам файлов?
    4. Назовите основные процедуры текстовых файлов.

    3. Операционно-содержательный этап

    Начинаем решение задач.

    (Все программы перед компиляцией следует сохранять. )

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

    Program primer;
    Var f:text;
    Fam,name,date:string;
    Begin
    Assign(f,’drug.txt’);
    Rewrite(f);
    Writeln(‘Введите фамилию’);
    Readln(fam);
    Writeln(f,fam);
    Writeln(‘Введите имя’);
    Readln(name);
    Writeln(f,name);
    Writeln(‘Введите дату рождения’);
    Readln(date);
    Writeln(f,date);
    Close(f);
    End.

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

    Program biblioteka;
    Var f:text;
    Avtor,nazvanie:string;
    God:integer;
    Begin
    Assign(f,’biblioteka.txt’);
    Rewrite(f);
    Writeln(‘Введите автора книги’);
    Readln(avtor);
    Writeln(f,avtor);
    Writeln(‘Введите название книги’);
    Readln(nazvanie);
    Writeln(f,nazvanie);
    Writeln(‘Введите год издания’);
    Readln(god);
    Writeln(f,god);
    Close(f);
    End.

    Открыть существующий файл drug.txt и дополнить его информацией о хобби своего друга (подруги).

    Program primer2;
    Var f:text;
    Hob:srting;
    Begin
    Assign(f,’drug.txt’);
    Append(f);
    Writeln(‘Введите хобби’);
    Readln(hob);
    Writeln(f,hob);
    Close(f);
    End.

    (Предлагается решить самостоятельно. Решение аналогично). Открыть существующий файл biblioteka.txt и дополнить его информацией о количестве страниц в книге.

    Program Biblioteka2;
    Var f:text;
    str:srting;
    Begin
    Assign(f,’biblioteka.txt’);
    Append(f);
    Writeln(‘Введите количество страниц в книге’);
    Readln(str);
    Writeln(f,str);
    Close(f);
    End.

    Создать текстовый файл chisla.dat, содержащий все четные двузначные числа.

    Program primer3;
    Var f:text;
    I:integer;
    Begin
    Assign(f,’chisla.dat);
    Rewrite(f);
    For i:=10 to 99 do
    If i mod 2=0 then writeln(f,i);
    Close(f);
    End.

  • (Предлагается решить самостоятельно. Решение аналогично). Создать текстовый файл proba.dat, содержащий все трехзначные числа, кратные 125.
  • Program probnik;
    Var f:text;
    I:integer;
    Begin
    Assign(f,’proba.dat);
    Rewrite(f);
    For i:=100 to 999 do
    If i mod 125=0 then writeln(f,i);
    Close(f);
    End.

    Рефлексивно-оценочный этап (10 мин). Проверка программ, выставление оценок за урок

    Домашнее задание. Попов. Turbo Pascal для школьников. Стр 314 №11, №15.

    лабораторные работы и задачи по программированию и информатике, егэ по информатике

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

    Виды файлов в зависимости от их описания и режимом работы

    1. текстовые (тип text) файлы со строками неопределенной длины;
    2. файлы с типом записей (двоичные или типизированные (file of) );
    3. файлы без типа для передачи данных блоками записей нетипизированные (file).

    Описание файловых переменных:

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

    где myfile — имя переменной (объявленной ранее в области var ), ассоциированной с файлом
    c: ext.txt — путь к реальному файлу
    Первый аргумент процедуры assign в паскаль — переменная, второй – путь к файлу на диске.

    Читайте также:  Майл почта вход гороскоп

    Текстовые файлы в паскале: процедуры работы

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

    Возможные расширения файлов:
    *.txt, *.log,
    *.htm, *.html

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

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

    Открытие файла

    Допустим, мы в программе описали переменную для работы с текстовым файлом:

    Рассмотрим дальнейшую последовательность работы с ним, и рассмотрим процедуры, необходимые для работы с текстовым файлом в Паскале:

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

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

    процедура добавления в конец:

    • При открытии курсор устанавливается в начало файла.

    Чтение из файла

    Read (f, список переменных); ReadLn (f, список переменных);

    Отличие ReadLn от Read в том, что при использовании readln после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки.

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

    Для возврата в начало файла:

    close ( f ); reset ( f );

    Запись в текстовый файл

    Write (f, список переменных); WriteLn (f, список переменных);

    где f — файловая переменная, а второй параметр – выводимые из программы и вводимые в файл данные (в виде значений переменных или просто данные)

    Процедуры работы с файлом и закрытие файла

    Нахождение конца файла:

    Логическая функция, возвращающая True, если достигнут конец файла.

    Нахождение конца строки:

    Логическая функция, возвращающая True, если достигнут конец строки.

    Удалить файл в Паскале

    Переименование файла в Паскале

    rename(переменная_файла,’новое имя файла’);

    Закрытие:

    Рассмотрим пример работы с файлами в паскале:

    var filetext: text; a,b,c:string; begin assign(filetext,’c: ext.txt’); reset(filetext); readln(filetext,a); readln(filetext,b); readln(filetext,c); close(filetext); writeln(a); writeln(c); end.

    * Из задачника М. Э. Абрамян (Text4)

    var F: Text; N,K:integer; Name:String; C:Char; begin Assign(F,’c: ext.txt’); Reset(F); N:=0; K:=0; While not eof(F) do begin inc(N); While not eoln(f) do begin inc(K); Read(F,C); end; Readln(F); end; Close(F); Writeln(N,’ ‘,K); end.

    var p, x: integer; f: text; begin assign(f, ‘input.txt’); reset(f); p := 1; while not eof(f) do begin readln(f, x); p := p * x; end; close(f); assign(f, ‘output.txt’); rewrite(f); writeln(f, ‘Произведение чисел ‘, p); close(f); end.

    var filetext: text; a:string; i:integer; begin assign(filetext,’c: ext.txt’); rewrite(filetext); for i:=1 to 10 do . reset(filetext); for i:=1 to 10 do begin . . end; close(filetext); end.

    * Из задачника М. Э. Абрамян (Text1)

    * Из задачника М. Э. Абрамян (Text5)

    * Из задачника М. Э. Абрамян (Text7)

    Читайте также:  Монитор dexp qc320k обзор

    var F_in,F_out: Text; Name,S: String; begin Write(‘S: ‘); Readln(S); Assign(F_in,’c: ext.txt’); Reset(F_in); Assign(F_out,’c: ext1.txt’); Rewrite(F_out); Writeln(F_out,S); While not eof(F_in) do begin Readln(F_in,S); Writeln(F_out,S); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c: ext.txt’); end.

    * Из задачника М. Э. Абрамян (Text9)

    * Из задачника М. Э. Абрамян (Text15)

    var F_in,F_out: Text; Name,line: string; K,i:integer; begin Write(‘K: ‘); Readln(K); Assign(F_in,’c: ext.txt’); Assign(F_out,’c: ext1.txt’); Reset(F_in); Rewrite(F_out); i:=0; While not eof(F_in) do begin Readln(F_in,line); inc(i); if i<>K then Writeln(F_out,line); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c: ext.txt’); end.

    Работа с данными из файла как с массивом

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

    * Из задачника М. Э. Абрамян (Text16)

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

    p.in p.out
    3
    hello earth
    khoor hduwk

    * желательно создать файлы и записать данные в исходный файл «вручную»
    * программа решена для k=3, выполните программу для любых k (не превышающих 20 по модулю)

    var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(s[i]); if n<>32 then <32 — пробел>n:=n+3; if . then . ; if . then . ; if . then . ; a:=chr(. ); s1:=. ; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

    var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(. ); if n<>32 then <32 — пробел>n:=n+3; if n=123 then n:=97; <â ASCII 123 — x, 97 — a>if n=124 then n:=98; <â ASCII 124 — y, 98 — b>if n=125 then n:=99; <â ASCII 125 — z, 99 — c>a:=chr(n); s1:=s1+a; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

    Найти сумму всех чисел от 1 до n, имеющих ровно 5 делителей.
    Единица и само число входят в число его делителей.
    Входные данные
    В единственной строке входного файла z3.in записано одно натуральное число n(1

    Posted in

    Зачем нужен c:char и name:string во втором примере?

    Сетевые заметки системного администратора

    Задача 1.

    Вычислить: y = sin1 + sin1.1 + sin1.2 + … + sin2.

    Первый вариант решения данной задачи.

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

    с – очередное слагаемое;

    i – аргумент функции;

    1. Обнуляем начальное значение переменной y (строка 5), в которой будем накапливать сумму.
    2. Начальное значение аргумента функции i равно 1 (строка 6).
    3. Проверяем, значение i меньше или равно 2, т.к. по заданию аргумент функции изменяется от 1 до 2 (строка 7)?
    4. Если «да», то определяем очередное значение функции (строка 9). Сохраняем его в переменной с. Если «нет», то расчет суммы закончен – переходим на шаг 78.
    5. Добавляем это слагаемое в сумму (строка 10).
    6. Увеличиваем значение аргумента i на 0.1 (строка 11).
    7. Переходим на шаг 3.
    8. Выводим результат на экран (строка 13).

    Второй вариант решения данной задачи.

    Анализируя данную формулу, видим, что каждое слагаемое данной суммы можно рассчитать по формуле sin(1 + 0.1 * i), где i изменяется от 0 до 10. Поэтому для решения данной задачи можно составить следующий алгоритм.

    Читайте также:  Материнка для i5 7400

    i – параметр цикла;
    y – сумма.

    1. Обнуляем начальное значение переменной y (строка 6), в которой будем накапливать сумму.
    2. Организуем цикл для определения суммы (параметр дан-ного цикла должен измениться от 0 до 10) .
    3. В данном цикле определяем очередное слагаемое по фор-муле и добавляем это слагаемое в сумму (строка 7).
    4. Выводим результат на экран (строка 8).

    Задача 2.

    Вычислить: y = 1*3*5* … *(2n–1), n>0;

    Задача 3.

    Дано натуральное число N. Разложить его на простые множители.

    n – исследуемое число;

    i, j – переменные циклов;

    f – вспомогательный флаг.

    Алгоритм решения задачи:

    1. Вводим значение переменной n. Т.к. пользователь может случайно ввести отрицательное число, то необходимо дать ему возможность для повторного ввода значения переменной n. По-этому организуем цикл (строки 3–6 текста программы). Лучше использовать цикл с пост проверкой условия (Repeat…Until). Тело цикла составляют два оператора: вывода на экран приглашения для ввода значения переменной n (строка 4) и оператор чтения с клавиатуры – для непосредственного ввода значения переменной n (строка 5). Данный цикл будет выполняться до тех пор, пока пользователь не введет любое положительное число (срока 6).
    2. Выводим на экран значение переменной n и начинаем формировать ответ. Ответ будет представлен в следующем виде (например, в качестве значения переменной n ввели 8): 8 = 1*2*2*2. Т.к. единица является простым множителем для любого числа, то выводим ее на экран (строка 7). В результате выполнения данной строки на экране появится: 8=1.
    3. Вспомогательной переменной f присваиваем значение false. Данная переменная нам будет необходима для определения, а были ли вообще найдены простые множители у заданного числа n. Запоминаем исходное значение переменной n в переменной j (строка 8).
    4. В цикле по переменной i начинаем порождение натуральных чисел, не превосходящих середины заданного числа n, для определения делителей данного числа n (строка 9). Данный цикл начали с 2, т.к. единицу мы уже учли (шаг 2 данного алгоритма). Т.к. в цикле For можно использовать только целые переменные, то воспользовались оператором целочисленного деления на 2 (n div 2). В данном цикле выполняем следующее. Определяем, является ли очередное i делителем числа n (в качестве n в данном цикле используем j). Для этого определяем остаток от деления j на i. Если остаток равен 0 (строка 10), т.е. число i является делителем j, то определяем, сколько таких делителей, уменьшая число n (строки 11–18). Переменной f присваиваем значение true (строка 12) – это означает, что у заданного числа n есть делители. Организуем цикл, пока остаток от деления j на i равен 0 (строка 13). В данном цикле выводим делитель на экран (строка 15) и уменьшаем заданное число, деля его целочисленно на делитель (строка 16). Повторяем цикл. После завершения этого цикла возвращаемся на цикл For (строка 9), изменяем i и повторяем те же действия для нового делителя.
    5. Если у числа нет делителей (оно является простым), то данное число можно разложить только на 1 и само себя. Вспомогательная переменная f и определяет, были ли делители у числа n. Если значение переменной f осталось false, то делителей не было, поэтому выводим само это число (строка 19).
    Ссылка на основную публикацию
    Усилитель pioneer a 405r
    Вероятно, госпожа Симметрия владела умами дизайнеров Pioneer, когда они разрабатывали внешний вид этой серии усилителей. Но, расположив в центре регулятор...
    Толщина рамки в css
    До сих пор используя HTML просто создавали элементы и они создавались со стандартными значениями. Теперь же при помощи CSS мы...
    Толкбэк на андроиде что это
    Talkback — это специальное приложение, установленное на Android по-умолчанию (актуально для большинства прошивок). Очень полезное приложение, созданное для людей, имеющих...
    Усилитель амфитон у 002 характеристики
    усилитель Амфитон -002 . Доработан по статье Жуковского '' Оверклоккинг Амфитона . '' и по рекомендациям Вова мастер звук. T.е....
    Adblock detector