Работа с word pascal

ЦЕЛЬ:

дидактическая часть:

  • закрепление пройденного материала предыдущего
    урока;
  • обобщение знаний о среде программирования Turbo
    Pascal и программирования;
  • использование текстового редактора Microsoft Word в
    среде Turbo Pascal;
  • использование текстового редактора Microsoft Word;
  • освоение приёмов построения и составления
    программ;

Воспитательная:

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

Развивающая:

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

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

Оборудование:

  • персональный компьютер,
  • проектор + большой экран,
  • карточки для учеников,
  • указка,
  • раздаточный материал с заданиями на урок,
  • интерфейс среды программирования Turbo Pascal,
    наличие в ПК пакет Microsoft Office 2007, а именно
    текстовый редактор Microsoft Word.

Требования для усвоения учебного материала:

Ученики должны знать:

  • Базовые алгоритмические структуры;
  • Особенности среды Turbo Pascal;
  • Особенности работы в текстовом редакторе Microsoft
    Word;

Ученики должны уметь:

  • Должны уметь составлять математические
    уравнения(в соответствии с учебной программой):
    на следование, на ветвление.
  • Составлять программы на Turbo Pascal;
  • Работать в текстовом редакторе;
  • Копировать, создавать, сохранять, обрабатывать
    и т.д. информацию по условиям задания на ПК и на
    любом носителе;
  • Чётко комментировать выполненную работу.

Ход урока

Организационный момент.

Приветствие. Проверка присутствующих.
Постановка цели. Формирование мотивации к
изучению темы.

Изучение материала

Переходим к изучению темы;

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

а) Что такое базовая алгоритмическая структура?

б) Что такое базовая алгоритмическая структура
следование и ветвление?

1. Теперь мы должны закрепить умение
пользоваться текстовым редактором Microsoft Word в
среде Turbo Pascal;

Перед этим, каждый ученик получает карточку с
указанием алгоритма выполнения задания:

Алгоритма выполнения задания:

Составление, сохранения программы на языке Turbo
Pascal и

Сохранения с помощью в текстового редактора
Microsoft Word в среде Turbo Pascal.

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

Составить уравнение:

а) На следование.

б) На ветвление.

После составления уравнения, учащиеся
приступают к составлению программ с помощью
персонального компьютера.

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

Открыть сохранённые программы с помощью
текстового редактора Microsoft Word в среде Turbo Pascal

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

Приступаем к новой теме.

Учитель объясняет, показывает и демонстрирует
всё на своём компьютере и весь процесс
отражается с помощью проектора на экране.

Задание прилагается.

Приложение 1.

Алгоритм работы учителя для объяснения новой
темы,

1. Создать на рабочем столе папку с именем «математический»,
в ней создать текстовый документ:

Microsoft Word с именем «программы»

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

X = Зк-bc +|n+ка|

3. Составить программу для решения системы
уравнения с заданной функцией у (на языке Турбо
Паскаль)
на ветвление и сохранить под
названием «ветвление» Турбо Паскаль:

 4. Открыть сохранённые программы, т.е «следование»
и «ветвление»
, в среде Турбо Паскаль
с
помощью текстового редактора Microsoft Word, и по
очереди обе программы скопировать в текстовый
документ «программы» в виде текста, который
создали в папке «математический», на
рабочем столе, после того, как скопировали обе
программы прокомментировать, т.е приписать
условия и выводы, ответ к задачам и сохранить.

Образец уже выполненного учителем задания и
скопированного из среды Turbo Pascal и обработанные
программы в текстовом редакторе Microsoft Word .

ПРИМЕР НА ВЕТВЛЕНИЕ.

Написать программу, на языке ПАСКАЛЬ
вычисления значения функции х(е) для
заданного е.

img2.gif (881 bytes)

Пример означает: если вместо е подставить 6
или меньше 6 то х будет находиться по
первому уравнению т.е. x=|23e|+d иначе (больше 6),

по второму уравнению img3.gif (296 bytes)

program rt;
var х,е ,d,n:real;
begin
write( ‘vvesti e’ ); readln(e);
write( ‘vvesti d, n); readln(d,n);
if e<=6 then x:= abs(23*e)+d else
x: = =sqrt (e*n) — 5*e;
writeln(‘x=’,x:3 :1); readln(x);
end.

После окончания программы, нажимаем Ctrl+F9 и
выдаётся 1.вариант

Если: ввести е=4 — вводим значение 4<6,

Ввести d,n — произвольные значения, т.е. d=5, n=5

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

х = 97.0 2. вариант.

Если: ввести е=10 т.е.10>б, а значения d
и n те же, то получим результат:

Х= -42.9

ЗАДАНИЕ ВЫПОЛНЕНО.

Пример на следование.

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

X = Зк-bc +|n+ка|

program rt;
var a,n,k,c,b,x:real;
begin
write(‘vvesti a,n,k, c,b’) ;
readln(a,n,k,c,b);
x:=sqrt(3*k-b*c)+abs (n+k*a);
writeln(‘x=!, x:4:2); readln(x);
end.

После окончания программы, нажимаем

Ctrl+F9 и выдаётся Ввести a,n,k,c,b Вводим
значения а=2

n=3

к=4

с=3

Ь=3

И выдаётся результат: х =12.73

ЗАДАНИЕ ВЫПОЛНЕНО.

Алгоритм работы учащихся:

  1. На рабочем столе своего компьютера найти папку
    с программой Turbo Pascal
  2. Открыть и составить программу на решение
    составленных раннее уравнений.
  3. Программ должно быть две: на следование и на
    ветвление.
  4. После составления программ, найти ответ ,
    убедиться в правильности своей программы, т.е.
    компьютер должен выдать ответ, после того как
    введёте значение для переменных, которые есть в
    вашем примере.
  5. После выполнения задания, программы нужно
    сохранить под разным именем в папке Turbo Pascal
  6. Найти приложение в виде значка «листа бумаги»
    или «дискеты» с названием ваших программ.
  7. С помощью мыши открыть каждую из них по очереди:
  8. Нажать правую кнопку мыши и в открывшейся
    пиктограмме выбрать и нажать «открыть с
    помощью»,
    снова выходит меню и из которого
    выбираем открыть с помощью «Microsoft Word».

Результат: открываем те же программы, которые
выполнили на языке Паскаль только уже с помощью
текстового редактора Microsoft Word. Теперь
программа, как бы превратилась в текст, так как
она открыта с помощью текстового редактора; это
дает возможность приписать комментарии к
программе, что не возможно было сделать в
программе Turbo Pascal.

Теперь данные программы объединить и сделать
так, чтобы обе программы были в одном текстовом
редакторе Microsoft Word.


Приложение 2

Образец уже выполненного учеником задания и
скопированного из среды Turbo Pascal и обработанной
программы в текстовом редакторе Microsoft Word .

Пример на ветвление.

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

Пример означает если вместо е подставить 6
или меньше 6, то х будет находиться по
первому уравнению, т.е. х = |23*e|+d, иначе если
будет больше 6 — по второму уравнению х= e*n
5*e

rogram rt;

var x,e,d,n:real;

begin

write(‘vvesti e’); readln(e);

write(‘vvesti d,n’); readln(d,n);

if e<=6 then x:=abs(23*e)+d else x:=sqrt(e*n)-5*e;

writeln(,x=,,x:3:1); readln(x);

end.

Результат, т.е. от веет выданный компьютером После
окончания программы, нажимаем Ctrl+F9 и выдаётся
ответ на наше уравнение:

1 вариант ответа

Если ввести е=4, то значение 4<6 и автоматически
е находиться с помощью первого уравнения х = |23*e|+d

А вместо переменных d, n подставим, допустим,
значение 5, то после введения значений, компьютер
выдаёт результат: х = 97.0

2 вариант ответа.

Если: ввести е=10 т.е.10>6, и
автоматически е находиться с помощью второго
уравнения

а значения d и n тот же, т.е. число 5:

После введения значений, компьютер выдаёт
результат: x = — 42.9

Пример на следование.

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

X = Зк-bc + |n+ка|

program rt; var a,n,k,c,b,x:real; begin

write(‘vvesti а,п,к,с,Ь’); readln(a,n,k,c,b);

x:=sqrt(3*k-b*c)+abs(n+k*a);

writeln(‘x=’,x:3:3); readln(x);

end.

После окончания программы, нажимаем Ctrl+F9 и
выдаётся

Ввести значения переменных a,n,k,c,b

Вводим значения переменных а=2, n=3, к=4, с=3 Ь=3

И выдаётся результат: х =12.73

ЗАДАНИЕ ВЫПОЛНЕНО.

Учитель проверяет как запись на носителе, так и
распечатку. Работы (распечатка) остаётся у
учителя.

VI. Подводим итог.

  • Что нового мы сегодня узнали?
  • Как открывается с помощью текстового редактора
    Microsoft Word программа, выполненная на языке Turbo Pascal и
    сохранённая в среде Turbo Pascal.
  • Как выполняется копирование и обработка этих
    программ в текстовом редакторе Microsoft Word?

 Вывод урока: цель урока выполнена,
учитель ставит оценки в дневники и в классный
журнал.

VII. Домашнее задание:

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

ЛИТЕРАТУРА

  1. Ю.А.Шафрин «1500 основных понятий и терминов и
    практических ? советов для пользователя ПК», 1999
  2. С.Симонович, Г. Евсеев «Компьютер», 1998
  3. И. Семакин, Л. Залогова и др. «Информатика 10-11
    класс»
  4. В.ФЛяхович «Основы информатики», 1996г
  5. В.Э.ФИГУРНОВ «IBM PC для пользователя», 1995
  6. Л.З. Шауцукова, «Информатика» 10-11 класс
  7. А.Г. Гейн, В.Г. Житомирский и др., 2002г.
    «Информатика» 10-11 класс
  8. В.Б. Попов «TURBO PASCAL для школьников» 2002
  9. И.В.Макаровой «Информатика(начальный курс)» 2001
  10. П.В.Макаровой «Информатика», 7-9 класс, 2001
  11. Н.В.Макаровой «Информатика», 10-11 класс, 2001
  12. А.Кетков, Ю.Кетков «Практика
    программирования», 2001
  13. Е.А. Понамарёва «Контрольные работы по
    информатике»
  14. Л.Л.Босова «Развивающие задачи по информатике»
  15. С. Немнюгин, Л. Перколаб изучаем Turbo Pascal
  16. Журналы «Информатика и образование» их
    приложения
  17. .»Информатика в уроках и задачах»
  18. Л.Л.Босова «Арифметические и логические основы
    ЭВМ

0 / 0 / 0

Регистрация: 09.11.2020

Сообщений: 19

1

23.06.2021, 21:16. Показов 1525. Ответов 5


Студворк — интернет-сервис помощи студентам

Необходимо открыть ворд файл в паскале



0



BrbSn_by Bark

0 / 0 / 0

Регистрация: 17.03.2021

Сообщений: 2

23.06.2021, 22:17

2

Если тебе требуется просто открыть файл..

Pascal
1
2
3
begin
  Exec('C:windows...')     //задаем полный путь к файлу
end.

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

Pascal
1
2
3
4
5
6
7
8
9
10
Var 
  a :Text;
  s :String;
begin
  assign (a, 'C:UsersКВБDesktopНовый текстовый документ.txt'); //привязка переменной к файлу
    Reset (a); //файл открываем только для чтения
    Read (a,s);
    Write(s);
  Close(a);
end.

eng* раскладка



0



Почетный модератор

64279 / 47578 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

24.06.2021, 06:40

3

Цитата
Сообщение от BrbSn_by Bark
Посмотреть сообщение

Новый текстовый документ.txt

В Word файлы имеют расширение не txt, a .doc или .docx.



0



canadamoscow

1051 / 408 / 189

Регистрация: 23.03.2020

Сообщений: 985

Записей в блоге: 1

24.06.2021, 14:51

4

Лучший ответ Сообщение было отмечено mr-Crocodile как решение

Решение

Microsoft.Office.Interop.Word Пространство имен

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
{$reference 'Microsoft.Office.Interop.Word.dll'}
uses Microsoft.Office.Interop.Word;
begin
  var app: ApplicationClass;
  try
    var FileName: object := 'd:pascal2.docx';
    app := new ApplicationClass;
    app.Documents.Open(FileName);
    var ТекстФайла := app.ActiveDocument.Content.Text;
    ТекстФайла.Println;
  finally app.Quit end
end.



3



Почетный модератор

64279 / 47578 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

24.06.2021, 15:55

5

Что-то как файл не называю, куда не кладу, все равно ошибка Файл не найден.



0



canadamoscow

1051 / 408 / 189

Регистрация: 23.03.2020

Сообщений: 985

Записей в блоге: 1

24.06.2021, 17:49

6

А файлик Microsoft.Office.Interop.Word.dll в рабочую папку положил?
Еще между строками 7 и 8 для просмотра действий word-приложения сделай:

Pascal
8
   app.Visible := true;



0



Word в паскале

Содержание раздела PASCAL

Введение. Общая характеристика языка. 1 Основы языка PASCAL 2 Структура программы 2.1 Раздел объявлений и соглашений, основнй блок2.2 Типы переменных 3 Операторы языка PASCAL 4 Простые и структурные типы данных 5 Процедуры и функции 6 Динамическая память 7 Модули 8 Ключи и директивы компилятора 9 Файлы 10 Другие возможности Турбо-Паскаля 1 0 .1 Оверлей 10. 2 Прямое обращение к памяти и портам 11 Турбо-Паскаль 6.0 и структурное программирование 12 ТурбоПаскаль и ООП 13 Объектно-ориентированная библиотека Turbo Vision 14 Встроенная справочная система

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

Если переменные A и B целочисленного типа, то программа:

Выведет на экран строку: “3.14 2.71 5.85”

Если же они строкового типа, то программа:

Выведет: “3.14 2.71 3.142.71”, так как оператор сложения просто добавит строку B в конец строки A.

Тип константы определяется способом записи ее значения:

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

число с дробной частью от 2.9*10-39.до 1.7*1038, может принимать и отрицательные значения, на экран выводится с точностью до 12-го знака после запятой, если результат какой либо операции с REAL меньше, чем 2.9*10-39, он трактуется как ноль. Переменная типа REAL занимает шесть байт.

число с дробной частью от 5.0*10-324.до.1.7*10308, может принимать и отрицательные значения, на экран выводится с точностью до 16-го знака после запятой ,если результат какой либо операции с DOUBLE меньше, чем 5.0*10-324, он трактуется как ноль. Переменная типа DOUBLE занимает восемь байт.

BYTE целое число от 0 до 255, занимает одну ячейку памяти (байт).
BOOLEAN логическое значение (байт, заполненный единицами, или нулями), true, или false.
WORD целое число от 0 до 65535, занимает два байта.
INTEGER целое число от –32768 до 32767, занимает два байта.
LONGINT целое число от –2147483648 до 2147483647, занимает четыре байта.
REAL
DOUBLE
CHAR символ, буква, при отображении на экран выводится тот символ, код которого хранится в выводимой переменной типа CHAR, переменная занимает один байт.
STRING строка символов, на экран выводится как строка символов, коды которых хранятся в последовательности байт, занимаемой выводимой переменной типа STRING; в памяти занимает от 1 до 256 байт – по количеству символов в строке, плюс один байт, в котором хранится длина самой строки.

При обьявлении переменной строкового типа можно заранее указать ее длину в байтах – X:

MyString:STRING[X];
При присвоении этой переменной строки длиннее X, присваиваемая строка будет обрезана с конца после X-того символа.

Размер переменной типа STRING в памяти можно узнать следующим способом:
Size:=SizeOf(MyString);
Функция SizeOf() возвращает размер, занимаемый переменной, служащей параметром. Параметром может служить и тип переменной; строка:
Writeln(SizeOf(STRING));
Выведет на экран число 256, так как по умолчанию под все строки отводится по 256 байт.

Кроме того, можно узнать, сколько символов в строке (индекс последнего непустого символа в строке):
Size:=Ord(MyString[0]);
Используется ибращение к нулевому элементу (символу) строки, в котором хранится ее длина, но MyString[0] – значение типа CHAR, тоесть символ, код которого равен длине строки, нужный нам код – число возвращает функция Ord()Таким же образом можно обратиться к любому N – тому элементу строки:
MyChar:=MyString[N];

ARRAY[a..b,c..d,….] OF “тип элемента”; массив некоторой размерности, содержащий элементы указанного типа.

Диапазоны индексов для каждого измерения указываются парами чисел или констант, разделенных двумя точками, через запятую (a..b,c..d). После OF записывается тип элементов массива. В памяти массив занимает место, равное: (b-a)*(d-c)*..* SizeOf(“тип элемента”). Размер массива не может превосходить 65536 байт.

Обращение к элементам массива происходит следующим образом:
X:=MyArray[a,b,c. ];

При этом переменная X должна быть того же типа, что и элементы массива или приводимого типа. Число индексов (a,b,c. ) должно быть равно числу обьявленных при описании измерений массива.

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

Проблема возникает при следующих присвоениях:
I:=J;
A:=B;

В то же время, такие присвоения будут выполнены вполне корректно:
J:=I;
B:=A;

При этом переменная J примет значение с нулевой дробной частью, а B – станет строкой, содержащей один символ – из A.

В первом же случае, можно поизвести следующие операции:
I:=Trunc(J); <функция trunc() возвращает целую часть аргумента>
I:=Round(J);

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

Word в паскале

Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.

Тип определяет:

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

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

Иерархия типов в языке Паскаль такая: —>

  • Простые
    • Порядковые
      • Целые
      • Логические
      • Символьные
      • Перечисляемые
      • Интервальные
    • Вещественные
  • Структуированные
    • Массивы
    • Строки
    • Множества
    • Записи
    • Файлы
  • Указатели

Простые типы данных

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

Идентификатор Длина (байт) Диапазон значений Операции
Целые типы
2 -32768..32767 +, -, /, *, Div, Mod,
>=, ,
1 0..255 +, -, /, *, Div, Mod,
>=, ,
2 0..65535 +, -, /, *, Div, Mod,
>=, ,
1 -128..127 +, -, /, *, Div, Mod,
>=, ,
4 -2147483648..2147483647 +, -, /, *, Div, Mod,
>=, ,
Вещественные типы
6 2,9×10 -39 — 1,7×10 38 +, -, /, *,
>=, ,
4 1,5×10 -45 — 3,4×10 38 +, -, /, *,
>=, ,
8 5×10 -324 — 1,7×10 308 +, -, /, *,
>=, ,
10 3,4×10 -4932 — 1,1×10 4932 +, -, /, *,
>=, ,
Логический тип
1 true, false Not, And, Or, Xor,
>=, ,
Символьный тип
1 все символы кода ASCII +,
>=, ,

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

Дополнительные сведения о типах данных..

Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:

  • все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
  • к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
  • к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
  • к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.

В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  • Т1 и Т2 представляют собой одно и то же имя типа;
  • тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:

Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:

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

В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция Имя_Типа(переменная или значение)

Напрмер, Integer(‘Z’) представляет собой значение кода символа ‘Z’ в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен.

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

TURBO PASCAL

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

Турбо Паскаль характеризуется разветвлённой структурой типов данных.

Простые типы

Указатели

Порядковые

Вещественные

Целые

Логический

Тип-диапазон

Массивы

Записи

Файлы

Строки

Объекты

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

ПРОСТЫЕ ТИПЫ

К простым типам относятся порядковые и вещественные типы.

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

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

ПОРЯДКОВЫЕ ТИПЫ

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

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

Длина,

-2 147 483 648…+2 147 483 647

При использовании процедур и функций с целочисленными параметрами следует руководствоваться «вложенностью» типов, т.е. везде, где может использоваться Word , допускается использование Byte (но не наоборот), в LongInt “входит” Integer , который, в свою очередь, включает в себя ShortInt .

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

. Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина).

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

Символьный тип. CHAR – занимает 1 байт. Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапозоне 0…255. Это число служит кодом внутреннего представления символа.

Для кодировки испоьзуется код ASCII ( American Standart Code for Information Interchange – американский стандартный код для обмена информацией). Это 7-битный код, т.е. с его помощью можн озакодировать лишь 128 символов в диапозоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в дапозоне от 0 до 255. Первая половина символов ПК с кодами 0…127 соответствует стандарту ASCII . Вторая половина символов с кодами 128ююю255 не ограничена жёсткими рамками стандарта и может менятся на ПК разных типов.

Символы с кодами 0…31 относятся к слжебным кодам. Если эти коды использовать в символьном тексте программы, они считаются пробелами.

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

Colors = (red, white, blue);

Применение перечисляемых типов делает программы нагляднее.

Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение списке получает порядковый номер 0, второе – 1 и т.д. максимальная мощность перечисляемого типа составляет 65536 значений, поэтому фактически перечисляемый тип задаёт некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями 0,1 и т.д.

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

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

Тип-диапазон задаётся границами своих значений внутри базового типа:

Здесь — минимальное значение типа-диапазона.

— максимальное его значение.

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

1. два символа «..» рассматриваются как один символ, поэтому между ними недопустимы пробелы.

2. левая граница диапазона не должна превышать его правую границу.

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

ВЕЩЕСТВЕННЫЕ ТИПЫ

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

Pascal. Типы данных

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

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

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

  • простые
  • структурированные
  • указатели
  • объекты
  • процедуры

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

Целочисленный тип

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

Тип Диапазон Размер в байтах
shortint -128…127 1
integer -32 768…32 767 2
longint -2 147 483 648…2 147 483 647 4
byte 0…255 1
word 0…65 535 2

Объявить целочисленную переменную можно в разделе Var, например:

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

Вещественный тип

В Паскале бывают следующие вещественные типы данных:

Тип Диапазон Память, байт Количество цифр
Real 2.9e-39 … 1.7e38 6 11-12
Single 1.5e-45 … 3.4e38 4 7-8
Double 5.0e-324 …1.7e308 8 15-16
Extended 3.4e-4932 … 1.1e493 10 19-20
Comp -9.2e63 … (9.2e63)-1 8 19-20

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

ln(x) – натуральный логарифм;

sqrt(x) – квадратный корень;

Логический тип

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

Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.

Символьный тип

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

  1. как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
  2. указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
  3. при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.

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

Succ(x) — возвращает следующий символ;

Pred(x) — возвращает предыдущий символ;

Ord(x) — возвращает значение кода символа;

Chr(x) — возвращает значение символа по его коду;

UpCase(x) — переводит литеры из интервала ‘a’..’z’ в верхний регистр.

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

Строковый тип

Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:

Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S[1]=s;. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.

Перечисляемый тип данных

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

Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Переменная A может принимать лишь значения определенные в разделе Type. Также можно объявить переменную перечисляемого типа в разделе Var:

Var A: (Monday, Tuesday);

К данному типу применимы операции отношения, при этом заранее определенно, что Monday = .. ;







Deutsch (de)
English (en)



suomi (fi)
français (fr)










русский (ru)









A word is the processor’s native data unit.
Modern consumer processors have a word width of 64 bits.

Data type

Most run-time libraries provide the native data type of a processor as the Pascal data type word.
It is a subset of all whole numbers (non-negative integers) that can be represented by the processor’s natural data unit size.

On a 64-bit architecture this means a word is an integer within the range [math]displaystyle{ [0,~2^{64}-1] }[/math].
On a 32-bit architecture a word will be an integer in the range [math]displaystyle{ [0,~2^{32}-1] }[/math], and so on, respectively.

In GNU Pascal a word is just an alias for cardinal, which has the same properties regarding possible values.

If a signed integer having the processor’s native size is wanted, the data type integer provides this functionality.

FPC

For source compatibility reasons, FPC defines word in the same way as Turbo Pascal and Delphi: the subrange data type 0..65535.
The high value 65535 is [math]displaystyle{ 2^{16}-1 }[/math].
Thus a system.word occupies two bytes of space.
Subrange data types are stored in a quantity that serves best the goals of performance and memory efficiency.

The processor’s native word size, as defined above, corresponds to different types depending on the purpose you want to use it for:

  • the (as of 2022 still undocumented) system.ALUSint and system.ALUUint types correspond to the native word size used by the processor’s ALU (arithmetic and logical unit), as defined at the beginning of this page. In general, this type should not be used in high level code. Instead, choose a data type based on the values it should be able to represent, as this is safer and more portable. It is the compiler’s job to generate optimal code.
  • system.CodePtrUInt corresponds to the size of pointers to code, such as the address of a procedure. This can be different from a pointer to data, e. g. on targets that support multiple memory models.
  • system.PtrUInt corresponds to the size of pointers to data.

On many platforms, all of these types have the same size, but it is not the case everywhere.

In FPC a smallInt has the same size as a word, but is signed.

navigation bar: data types

simple data types

boolean
byte
cardinal
char
currency
double
dword
extended
int8
int16
int32
int64
integer
longint
real
shortint
single
smallint
pointer
qword
word

complex data types

array
class
object
record
set
string
shortstring

На занятии будет рассмотрена работа с текстовыми файлами в Паскале и разобраны конкретные решенные примеры задач

Содержание:

  • Работа с файлами в паскале
  • Текстовые файлы в паскале: процедуры работы
    • Открытие файла (классический Pascal)
    • Чтение из файла (классический Pascal)
    • Запись в текстовый файл (классический Pascal)
    • Процедуры работы с файлом и закрытие файла
    • Работа с данными из файла как с массивом

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

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

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

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

var
   f1: file of char; {типизированный файл}
   f2: file of integer; {типизированный файл}
   f3: file; {нетипизированный файл}
   f: text; {текстовый файл}

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

assign(myfile,'c:text.txt');

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

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

Считывание строки Считывание массива из N целых
begin
 Assign(input,'24.txt');
 var s := ReadString;
 ...
end.
begin
 Assign(input,'26.txt');
 var N := ReadInteger;
 var a := ReadArrInteger(N);
 ...
end.

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

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

Важно: Если быть точными, то каждая строка текстового файла завершается специальной комбинацией, называемой «конец строки».
Комбинация «конец строки» состоит из двух символов: перевод каретки (ASCII-код #13) и перевод строки (#10). Завершается текстовый файл символом конец файла (#26).

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

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

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

Открытие файла (классический Pascal)

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

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

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

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

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

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

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

Чтение из файла (классический Pascal)

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

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

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

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

  • Чтение до конца файла: оператор EOF (end of file).
  • Чтение до конца строки: оператор EOL (end of line).
  • Чтение до конца строки

  • Для возврата в начало файла:
  • close ( f ); 
    reset ( f ); { начинаем с начала }

    Запись в текстовый файл (классический Pascal)

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

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

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

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

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

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

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

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

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

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

    Закрытие:

    Close (f);  {закрытие файла}

    Важно: Таким образом, работа с файлом осуществляется через три основных шага:

    1. Процедура assign.
    2. Процедура reset или rewrite.
    3. Процедура close.

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

    Пример 1: В файле text.txt записаны строки. Вывести первую и третью из них на экран.
    (предварительно создать text.txt с тремя строками)

    Решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    var
       filetext: text;
       a,b,c:string;
    begin
    assign(filetext,'c:text.txt');
    reset(filetext);
    readln(filetext,a);
    readln(filetext,b);
    readln(filetext,c);
    close(filetext);
    writeln(a);
    writeln(c);
    end.
    1
    2
    3
    4
    5
    6
    7
    
    begin
      Assign(input, '1.txt');
      var a := ReadString;
      var b := ReadString;
      var c := ReadString;
      print(a, c)
    end.

    Пример 2: Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк EOLN и конца файла EOF при подсчете количества символов не учитывать).

    Показать решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    var
      F: Text;
      N,K:integer;
      Name:String;
      C:Char;
    begin
     Assign(F,'c:text.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.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    begin
      Assign(input, '1.txt');
      var n, k: integer;
      while not eof(input) do
      begin
        inc(n);
        while not eoln(input) do
        begin
          inc(k);
          var a := ReadChar;
        end;
        var b := ReadString;
      end;
      print($'строк {n}, символов {k}')
    end.

    Пример 3:
    Считать из файла input.txt числа (числа записаны в столбик). Затем записать их произведение в файл output.txt

    Решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    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.
    begin
      Assign(input, 'input.txt');
      Assign(output, 'output.txt');
      var p := 1;
      while not eof(input) do
      begin
        var x := readInteger; 
        p := p * x;
      end;
      print($'произведение {p}');
    end.

    pascal file text1. В цикле записать в файл числа от 1 до 10 (каждое — в своей строке), а затем их считать и отобразить на экране.
    Дополните код:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    var
       filetext: text;
       a:string;
       i:integer;
    begin
    assign(filetext,'c:text.txt');
    rewrite(filetext);
    for i:=1 to 10 do
        ...
    reset(filetext);
    for i:=1 to 10 do begin
        ...
        ...
    end;
    close(filetext);
    end.

    pascal file text2. Даны целые положительные числа N и K. Создать текстовый файл и записать в него N строк, каждая из которых состоит из K символов «*» (звездочка).

    pascal file text3. Дана строка S и текстовый файл. Добавить строку S в конец файла.

    Показать решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    var
      F_in,F_out: Text;
      Name,S: String;
     
    begin
     
     Write('S: ');
     Readln(S);
     Assign(F_in,'c:text.txt');
     Reset(F_in);
     Assign(F_out,'c:text1.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:text.txt');
    end.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    begin
      var s := readstring('s: ');
      Assign(input, 'input.txt');
      Assign(output, 'output.txt');
      println(S);
      while not eof(input) do
      begin
        s := ReadString;
        println(s);
      end;
      close(input); // обязательно!
      close(output); // обязательно!
      Erase(input);
      Rename(output, 'input.txt');
    end.

    pascal file text4. Дано целое число K и текстовый файл. В данном файле вставить пустую строку перед строкой с номером K. Если строки с таким номером нет, то оставить файл без изменений.
    Для решения задачи можно использовать дополнительный временный файл.

    Пример 5: Дано целое число K и текстовый файл. Удалить из файла строку с номером K. Если строки с таким номером нет, то оставить файл без изменений.

    Примерный результат:
    до:

    >> 2
    0line 
    1line 
    2line 
    3line 

    после:

    0line 
    2line 
    3line 

    Показать решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    var
      F_in,F_out: Text;
      Name,line: string;
      K,i:integer;
     
    begin
     Write('K: ');
     Readln(K);
     Assign(F_in,'c:text.txt');
     Assign(F_out,'c:text1.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:text.txt');
    end.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    begin
      var k := readinteger('k: ');
      Assign(input, 'input.txt');
      Assign(output, 'output.txt');
      var i:=0;
      while not eof(input) do
      begin
        var s := ReadString;
        inc(i);
        if i<>k then 
          println(s);
      end;
      close(input); // обязательно!
      close(output); // обязательно!
      Erase(input);
      Rename(output, 'input.txt');
    end.

    Пример 6: Дан текстовый файл F1 с набором нулей и единиц. Необходимо заменить все вхождения сочетаний 101 на 000. Скорректированные записи поместить в файл F2.

    * Использовать функции для работы со строками:
    — Pos()
    — Delete()
    — Insert()

    Показать решение:

    Паскаль PascalAbc.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    var 	f1,f2: text;
    pole:string;
    pz:integer;
    begin
    assign(f1,'1.txt');
    assign(f2,'2.txt');
    reset(f1); rewrite(f2);
    while not eof(f1) do
    begin
         readln(f1, pole);
         while pos('101',pole)<>0 do
         begin
              pz:=pos('101',pole);
              delete(pole,pz,3);
              insert('000',pole,pz);
         end;
         writeln(f2,pole)
    end;
    close(f1);
    close(f2);
    end.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    begin
      Assign(input, 'input.txt');
      Assign(output, 'output.txt');
      var s:=readString;
      var s1:='';
      var ind := s.IndexOf('101');
      while ind<>-1 do
      begin
        s1+=s[:ind+1];
        s1+='000';
        delete(s,1,ind+3); // удаляем всё вместе с 101
        ind := s.IndexOf('101');
      end;
      s1+=s;
      Println(s1);
    end.

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

    Пример 7: В файле input.txt записаны числа (каждое — с новой строки), их количество не превышает 100. Необходимо отсортировать их по возрастанию и записать в файл output.txt.

    Трудности:

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

    Алгоритм решения:

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

    Фрагмент решения:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    { Определяем глобальные переменные: }
    var A: array[1..100] of integer;
        f: text;
        N, i: integer;
    { Определяем функцию, считывающую числа из файла, и
    записывающую их в массив. Функция возвращает кол-во элементов массива: }
    function ReadFromFile: integer;
    var i: integer;
    begin
     assign(f, 'input.txt');
     ...;{ открытие файла в режиме чтения }
     i := 0;
     while (...) and (...) do begin
        i := i + 1;
        readln(...,...);  
        end; 
     close(f);    
     ReadFromFile := i;
    end;
    { Основная программа }
    Begin
       N := ReadFromFile ;
    { сортировка N элементов по возрастанию }
    { ... }
    { запись отсортированного массива в файл: }
    assign(..., ...);
    ...;{ открытие файла в режиме записи }
    for i:=1 to N do 
      writeln(..., ...);     
    close(f);
    end.

    pascal file text5. В файле input.txt записаны числа (каждое — с новой строки), их количество не превышает 100. Необходимо найти максимальное и минимальное число и записать их в файл output.txt.

    pascal file text6. Дан текстовый файл. Удалить из него все пустые строки.

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

    Пример 8: Шифр Цезаря заключается в том, что каждая буква исходной строки заменяется третьей после нее буквой в алфавите, который считается написанным по кругу (все символы текста латинские и прописные).
    Решить ту же задачу, в которой сдвиг будет не на 3 позиции, а на k, причем отрицательное значение является признаком сдвига влево, положительное — вправо.
    Формат входных данных (файл p.in): В первой строке записано число k, не превышающее по модулю 20. Во второй строке — текст, который необходимо зашифровать. Все символы текста латинские и прописные.
    Формат выходных данных (файл p.out): Выведите зашифрованный текст.
    Пример:

    p.in p.out
    3
    hello earth
    khoor hduwk

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

    Фрагменты кода:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    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.

    pascal file text7. Пять делителей.
    Имя входного файла: z3.in
    Имя выходного файла: z3.out

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

    Примеры:

    z3.in z3.out
    50 16
    200 97
    2015 722

    * Олимпиадное задание (11 класс, 2016)

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Работа с word ios
  • Работа с word document
  • Работа с word 2016 для начинающих
  • Работа с word 2010 вставка рисунка
  • Работа с excel объединить таблиц в одну

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии