Операторы ввода – вывода данных

 

Содержание


Задание на курсовой проект

1.Введение

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

3. Ввод-Вывод данных. Операторы языка Турбо Паскаль

.1. Ввод-вывод данных

.2. Оператор присваивания и выражения

.3. Операторы вызова процедур

.4. Процедуры ввода READ и READLN

.5. Процедуры вывода WRITE и WRITELN

.6. Структура программы

.7. Примеры решения задач на языке Паскаль

Заключение

Приложение

Литература



Задание


на курсовой проект по дисциплине «Основы алгоритмизации и программирования»

Обучающийся_

Группа:_ Специальность: 1304000 «Вычислительная техника и программное обеспечение».

Консультант:

1.Тема курсовой работы «Операторы ввода - вывода данных».

2.Основное содержание:

ØСодержание

ØЗаключение

ØПриложение

ØСписок использованной литературы

3. Требование к оформлению

.1 Пояснительная записка должна быть оформлена в редакторе Microsoft ® Word версии 2003,2007 в соответствии с требованиями

Пояснительная записка выполняется на листах формата А4 с применением печатающих и графических устройств вывода ЭВМ.

Шрифт Times New Roman. Размер шрифта - 14 пт, выравнивание - по ширине.

Рисунки выполняются в редакторах Word,Excel,Paintbrush.

Поля страница верхнее и нижняя границы - 2см, левая-3см, правая-1,5 см.

Абзацы в тексте начинают отступом в 1 см.

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

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

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

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

К защите курсового проекта создается презентация, содержащая главную суть курсового проекта.

В пояснительной записке должны содержаться разделы:

·Введение.

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

·Ввод-Вывод данных. Операторы языка Турбо Паскаль.

·Ввод-вывод данных.

·Оператор присваивания и выражения.

·Операторы вызова процедур.

·Процедуры ввода READ и READLN.

·Процедуры вывода WRITE и WRITELN.

·Структура программы.

·Примеры решения задач на языке Паскаль.

Дата выдачи_____ Дата окончания____________________

Руководитель __ _____ __________


1.Введение


Компьютерные программы обрабатывают различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные. Любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read и readln, а вывод - благодаря write и writeln. Процедуры, которые имеют окончание ln, после своего выполнения переводят указатель на новую строку.

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

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

Для ввода в оперативную память значений переменных используются операторы ввода read и readln.

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

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

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

Общий вид:Write (список выражений) WriteLn (список выражений)

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

Вспомним, что основное назначение ЭВМ - сэкономить человеческий труд. Поэтому, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры. Общий вид: Read(переменная, переменная) ReadLn(переменная, переменная). Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.


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


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

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

Для ввода и вывода данных в языке Turbo Pascal предусмотрены следующие процедуры ввода/вывода: read, readln, write и writeln. Названия означают "читай", "читай строку" (read line), "пиши", "пиши строку" (write line) соответственно.

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

1.BEGIN будем ставить в начале программы, чтобы компьютеру было видно, откуда она начинается. (Это правило мы очень скоро уточним). BEGIN переводится НАЧАЛО, читается "би'гин".

2.END с точкой ставится в конце программы, чтобы компьютеру было видно, где она кончается. END переводится КОНЕЦ, читается "энд".

.Точкой с запятой необходимо отделять операторы друг от друга. Служебные слова BEGIN и END от операторов точкой с запятой отделять не нужно.


3.Ввод-вывод данных. Операторы языка Турбо Паскаль


3.1 Ввод-вывод данных


Для ввода искомых данных в языке Турбо-Паскаль используются стандартные процедуры Read или Readln. Эти процедуры используются для чтения данных, набираемых на клавиатуре и присваивания их переменным. Каждая из этих процедур может иметь любое число параметров, записываемых в круглых скобках. Параметрами могут быть только имена переменных, которые отделяются друг от друга запятыми.

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

Пример: Read (7,18); Read(3) - список 7, 18, 3;

но Readln(7,18), Readln(3) - список 7 18 3

Процедура Readln без параметров реализует пропуск строки при вводе данных. Она используется для приостановки программы до нажатия клавиши Enter.

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

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

Форма записи параметра в процедуре Write имеет следующий вид:

(параметр, параметр:B1, параметр:B1:B2)


где В1 - ширина поля, B2 - длина дробной части. По умолчанию integer занимает 7 позиций, real - 13 позиций. В целой части числа записывается первая отличная от нуля цифра. Шесть последующих цифр составляют дробную часть мантиссы. Одну позицию занимает буква е, которая обозначает основание степени, которое соответствует числу 10, одна позиция отводится под знак порядка и две - для величины порядка.

Например, если даны три числа: А = 3.6, В = 7.4, С = -2.5 и напечатан оператор Write('A=',A:4:1,' B=',B,' C=',C:6:1), то в результате будет выведено: А= 3.6 В= 7.400000Е+00 С= -2.5

При составлении программы нужно помнить, что они предназначены не только для выполнения на ЭВМ, но еще их читают, пытаются понять и переделать другие люди. Поэтому, чтобы разъяснить смысл программы, их снабжают комментариями. Комментарий - это любой текст, заключенный в фигурные { } или в круглые со звездочкой (* ) скобки. Этот текст не влияет на выполнение Турбо-Паскаль программы, но важен для человека, читающего ее и пытающегося ее понять. Большим удобством при написании комментариев является возможность располагать их на той же строке, что и операции, которые они объясняют. Длинные комментарии могут занимать несколько строк. Знаки ( *) считаются более приоритетными по сравнению с { }.

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


Writeln(' ');('x=',x);('y=',y);


В этом случае, если бы не было первого оператора Writeln(' '), то это могло бы привести к появлению х=... в строке, частично уже заполненной ранее:


...х=...=... ,


что может оказаться нежелательным.

Кроме того, использование оператора Writeln со строковой константой, т.е. текста, заключенного в апострофы, перед оператором ввода Read (Readln) позволяет в процессе выполнения программы напомнить программисту о том какие данные и в каком виде надо вводить в программу. Пример использования оператора Writeln:

('Введите целые числа Х и Y');


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


3.2 Оператор присваивания и выражения


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


Имя Переменной := выражение;


Знак:=читается как присвоить значение. Частным случаем выражения, стоящего в правой части, являются переменные и константы.

Например:


sort:=1; cena:=12.34; y:=x; result:=sin(a) + cos(b); name:=модель1;


Оператор присваивания используется для сохранения результата вычисления выражения в переменной. Оператор присваивания можно считать основным оператором языка Тurbо Раsсаl, т. к. именно в нем выполняются практически все действия по обработке данных.

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

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

вычисляется значение выражения;

переменной слева от знака присваивания «:=» присваивается полученное значение.

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


RAZN := A - 3.5;:= 25; C := D; Y := 'программа';:= true; P := X > 10.


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

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

Арифметические выражения складываются из констант, переменных, стандартных функций с использованием скобок и знаков операций. В Паскале определены следующие операции над числами: * , / , + , - , DIV, MOD, где DIV - деление нацело; MOD - вычисление остатка от деления. Приоритеты:


*, /, DIV, MOD - высший;

+, - - низший.


Например:

:= 13 DIV 5; (результат: A = 2),:= 13 MOD 5; (результат: B = 3).


Каждое арифметическое выражение может иметь типы INTEGER и REAL. Тип константы определяется самим видом константы, тип переменной задается в ее объявлении. Тип арифметического выражения определяется по следующему правилу:

1.Для операций «*, +, -» результат имеет тип REAL, если хотя бы один из операндов имеет тип REAL. Если оба операнда типа INTEGER, то и результат имеет тип INTEGER.

2.Для «/» результат всегда имеет тип REAL.

.Для «DIV, MOD» операнды и результат имеют тип INTEGER.

Значение переменной интервального типа, образованной на основе INTEGER, всегда имеет тип INTEGER. При использовании оператора присваивания нужно соблюдать типизацию объектов слева и справа от знака «:=». Смешение типов недопустимо за исключением случая, когда слева от знака «:=» стоит тип REAL, а справа - тип INTEGER.

В языке Тurbо Раscal нельзя с помощью одного оператора присваивания присвоить нескольким переменным одно и то же значение.

Например, нельзя записать i:=j:=k:=0;

Необходимо использовать три оператора: i:=0; j:=0; k:=0;


3.3Операторы вызова процедур


Оператор вызова процедуры определяет активизацию процедуры, обозначенную с помощью идентификатора (имени) процедуры. Другими словами, с помощью операторов этого типа осуществляется вызов процедур с указанием в них входных и выходных параметров (подробнее об этом будет сказано в разделе «Процедуры»). Мы начнем знакомство с операторами-процедурами на базе организации ввода/вывода данных в языке Паскаль.

Для организации ввода и вывода данных используются следующие встроенные (машинные) процедуры: READ, WRITE, READLN, WRITELN.


.4Процедуры ввода READ и READLN


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

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

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

Общая форма записи оператора

(X,Y, ... , Z), где X,Y, ... , Z - переменные, называемые списком ввода.


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

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

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

Формат:

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


где <список переменных> - последовательность имен переменных, разделенных запятыми. Буквы ln добавляются в конце оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы.

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

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


......................(A, B, C);

…………….(D, E);

…………….


и пусть по первому оператору READ на клавиатуре набрано 5 констант. Тогда при работе второго READ останова работы программы не будет и переменные C и D получат значения последних двух ранее введенных констант. Если же ввести 4 константы, то второй оператор READ затребует еще одну константу с клавиатуры.

Вызов процедуры READLN имеет тот же синтаксис, что и оператор READ, однако ее работа отличается от работы первой процедуры. При однократном вводе констант отличий нет, а при одноразовом вводе нескольких констант происходит очистка буфера клавиатуры. Так, если в нашем примере заменить первый READ на READLN и тоже ввести сразу 5 констант, то второй оператор READ произведет остановку работы программы и затребует повторного ввода последних двух значений для переменных D и E. Заметим также, что оператор READLN используется преимущественно при вводе текстовых констант (READLN - read line - читать текст).

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

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

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

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

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

Таким образом, если первая программа после запуска будет работать без остановки до самого конца и без хлопот выдаст результат, то вторая программа на операторе ReadLn остановится и будет ждать. Во время этого ожидания человек должен на клавиатуре набрать число 20 (так как первым в списке оператора ReadLn стоит a), затем нажать клавишу пробела, затем набрать 16 и нажать клавишу Enter. Паскаль воспринимает нажатие пробела, как сигнал человека о том, что закончен набор на клавиатуре одного числа и сейчас начнется набор другого. После набора на клавиатуре последнего числа необходимо нажать клавишу Enter в знак того, что ввод чисел для данного оператора ReadLn закончен и компьютер может продолжать работу. В соответствии с этим компьютер сразу же после нажатия Enter прекращает ожидание и прежде всего направляет число 20 в память, в ячейку a, число же 16 - в ячейку b. На этом он считает выполнение оператора ReadLn законченным и переходит к следующему оператору - WriteLn. В результате будет напечатано число 36.

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


3.5Процедуры вывода WRITE и WRITELN


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

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

Процедуры вывода WRITE и WRITELN служат для вывода на экран констант (как числовых, так и текстовых), значений переменных и выражений. Они вызываются с помощью одноименных операторов вызова процедур, например:('программа', X, Y - Z * 3).

По этому оператору на экран будет выведено в одной строке слово «программа» и далее без пробелов значения переменной X и выражения Y - Z * 3. Например, если имеем X = -3, Y = -5, Z = 12, то на экран будет выведено: программа-3-41.

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

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

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

После вывода результата выполнение программы продолжится, а если оператор writeln был в ней последним, то и завершится. Чтобы пользователь успел прочитать результат, следует в конце программы добавить оператор readln; который будет ждать нажатия клавиши Enter.

В операторе write или writeln вещественное значение (а также целое или строковое) зачастую удобнее записывать в виде:

переменная: ширина: точность

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

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

Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

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

Для начала необходимо объявить файловую переменную. Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т. д). Их можно использовать лишь для выполнения операций с файлами (чтение, запись и т. д.).

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

(<Имя файловой переменной>,<Имя файла>);


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

После этого файл должен быть открыт одной из процедур:

(<Имя файловой переменной>);


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

(<Имя файловой переменной>);


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

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

(<Имя файловой переменной>);


Это требование обязательно должно соблюдаться для файла, в который производилась запись.

(cos (x + 4) : 5 : 2);


Оператор WriteLn - читается "райт 'лайн" , переводится - ПИШИ СТРОКУ. Правила его записи и выполнения те же, что и у Write, с одним исключением - после выполнения оператора Write следующий оператор Write или WriteLn печатает свою информацию в той же строке, а после выполнения оператора WriteLn - с начала следующей.

Работа оператора WRITE отличается от работы оператора WRITELN тем, что по завершении вывода у WRITE курсор остается в конце списка вывода, а у WRITELN он переходит на следующую строку. Часто используют оператор WRITELN без списка вывода для вывода на экран пустой строки.

Проиллюстрируем работу этих операторов на следующем примере:


program AVERAGE;FIRST, SECOND, TROIS, SUM: integer;

begin('Введите 3 числа ');

readln (FIRST, SECOND, TROIS);:= FIRST + SECOND + TROIS;('Среднее значение ', FIRST:4,',',SECOND:4,',');(TROIS:4,' равно ';(SUM div 3):3)

end.


На экран будет выведено:


Введите 3 числа 2 12 9 Среднее значение 3, 12, 9 равно 8

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

X,Y:REAL;


Существуют две формы представления вещественных чисел: в формате с фиксированной точкой (например:151.456) и в формате с плавающей точкой, т.е. число представляется в виде мантиссы и порядка(0.234578E+3) Последний формат удобен для представления очень больших или очень маленьких чисел.

Вычисления над переменными вещественного типа выполняются приближенно


3.6Структура программы


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

{ Заголовок программы }{ Подключение модулей }{ Раздел объявления меток }{ Раздел объявления констант }{ Раздел объявления новых типов }{ Раздел объявления переменных }{ Описание своих процедур }{ Описание своих функций }{ начало основной программы }

{ Операторы }.


Обязательной частью является лишь тело программы, которое начинается словом begin, а заканчивается словом end с точкой. Операторы в Паскале разделяются точкой запятой. Заголовок программы является хотя и необязательным, но желательным элементом и состоит из зарезервированного слова program и идентификатора - имени программы, за котором следует точка с запятой. Порядок объявлений и описаний не регламентируется.

Пример : Простейшая программа.

prim_1; { демонстрация структуры программы}

{эта программа не требует никаких объявлений и описаний}

write('Привет! Вот мы и начали.') (* эта строка текста появится на экране *).


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


program p1; var,b,c:real; begin

writeln ('Введите значения A и B:'); read (a,b);

c:=a+b; writeln ('A+B=',c); c:=a-b;('A-B=',c); end.


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


program p1;a,b,c:real;

writeln ('Введите значения A и B:');

read (a,b);:=a+b;('A+B=',c);:=a-b;('A-B=',c);.


3.7Примеры решения задач на языке Паскаль


1. Одна сторона прямоугольника на 5 см. длиннее другой, а сумма их длин равна 17 см. Найти стороны этого прямоугольника.

Задачу решим в общем виде: обозначив ширину прямоугольника - storona1, длину - storona2, разность сторон - raz, сумму длин сторон - summa.


program primer1;

var summa,raz,st:real;,storona2:real;

begin('Введите сумму длин сторон прямоугольника');(summa);('Введите на сколько одна сторона больше другой');

readln(raz);:= (summa - raz) / 2;:= st;:= st + raz;('ширина-',storona1:7:2,'см.');('длина-',storona2:7:2,'см.');

end.


2. Нефтебаза отпустила за два дня 2560 л. бензина. Во второй день база отпустила на 280 л. больше. Сколько литров бензина база отпустила отдельно за каждый день?

Задачу решим в общем виде: обозначив 2560л. - summa, 280л. - raz.


program primer2;summa,raz,st,day1,day2:real;

begin;('Сколько литров бензина отпустила нефтебаза за 2 дня');

readln(summa);(2560');(raz);:= (summa - raz) / 2.0;:= st;:= st + raz;('первый день-',day1:7:2,'л.');

writeln('второй день-',day2:7:2,'л.');

end.


3. Одно число в 2 раза больше другого, а их сумма равна 93. Найти эти числа. Задачу снова решим в общем виде.


program primer3;summa,raz,st,chislo1,chislo2:real;

begin(93');(summa);(2);(raz);:= summa / (raz + 1);:= st;:= st * raz;('1 число-',chislo1:7:2,' ед.');('2 число-',chislo2:7:2,' ед.');

end.


4. Составьте алгоритм и программу для определения сдачи после покупки в магазине товара: перчаток стоимостью а руб., портфеля стоимостью b руб., галстука стоимостью с руб. Исходная сумма, выделенная на покупку d руб. В случае нехватки денег сдача sd получится отрицательной.


program primer4;a,b,c,d,sd:real;

begin;('введите стоимость перчаток-');(a);('введите стоимость портфеля-');(b);('введите стоимость галстука-');(c);('введите кол-во денег, имеущихся в наличии-');

readln(d);:= d - (a + b + c);('Сдача - ',sd,' руб.');

end.


5. Дана сторона квадрата а. Найти его периметр P=4*a.


program Begin1;

var a,p:real;

begin

writeln('Введите сторону квадрата');

readln(a);

p: =4*a;('Периметр P=',P)

end.


Заключение


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

Для ввода в оперативную память значений переменных используются операторы ввода read и readln.

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

Неважно какими буквами - заглавными или строчными, полужирным шрифтом или обычным - записаны названия служебных слов и операторов. Точкой с запятой необходимо отделять операторы друг от друга. Служебные слова BEGIN и END от операторов точкой с запятой отделять не нужно. Если в скобках оператора WriteLn встречаются выражения с переменными величинами, то Паскаль находит в памяти значения этих величин, подставляет их в выражения, вычисляет выражения и результат выводит на экран. Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Операторы программы выполняются последовательно, один за другим, в соответствии с их расположением в программе. . Команды, из которых состоит программа на Паскале и многих других языках, называются операторами.

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

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


Приложение


Следует знать:

. Инструкция readln при вводе с клавиатуры предпочтительнее read, т. к. полностью освобождает буфер клавиатуры - рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Инструкция read оставляет в буфере клавиатуры код клавиши <Еntег>, нажатие которой завершает процесс ввода.

. B одной инструкции read или readln можно записать несколько переменных. Для того чтобы отделить их значения друг от друга, при вводе можно использовать пробел либо символ табуляции (клавиша <ТаЬ>) или нажимать клавишу <Enter > после ввода каждого из значений.

. Инструкция readln (без переменных) обычно записывается в конце программы и служит для создания паузы, которая длится до нажатия пользователем клавиши < Enter >. В противном случае, по окончании программы окно с текстом программы закроет экран с полученными результатами.

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

. В случае несоответствия типа введенных данных типу переменной, значение которой вводится с клавиатуры, программа завершает работу, и на экран выводится сообщение об ошибке ввода/вывода. Если программа запущена из среды разработки, т. е. из Turbo Pascal - Еггог 106: Invalid numeric format (Ошибка 106: Неверный числовой формат). Если программа запущена из операционной системы - Run time error 106 (Ошибка времени выполнения 106). В этом случае необходимо использовать обработку ошибок ввода/вывода).

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

Следует знать:

. Инструкции writeln и write предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров - произвольно.

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

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

. Процедура вывода writeln аналогична write. Отличие заключается в том, что после вывода последней переменной из списка, курсор автоматически переходит в начало новой строки.

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

Следует знать:

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

. Имеется три вида выражений:

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

Логические выражения - служат для сравнения различных данных и других логических действий;

Символьные выражения - нужны для обработки текстов;

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

. При нарушении соответствия выводится сообщение об ошибке Туре mismatch (Несоответствие типов).

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



Литература


1.Касторнов А.Ф. Методическое пособие по курсу "Алгоритмический язык Паскаль". - Череповец, 1995.

2.Касторнова В.А., Касторнов А.Ф. Демонстрационно-обучающий курс Алгоритмический язык Паскаль. // Информатика и образование. - 1998. - №2.-С.48-61.

.Немнюгин С.А. Turbo Pascal: Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2007.

.Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2004.

.Павловская Т.А. Паскаль. Программирование на языке высокого уровня: Практикум. - СПб.: Питер, 2006.

.Ставровский А.Б. Турбо Паскаль 7.0: Учебник для вузов. - Киев, 2001.

.Фаронов В.В. Турбо Паскаль 7.0: Практика программирования: учебное пособие.-М.: ОМД Групп, 2003.

8.Семинович С.В, Евсеев Г.А. «Практическая информатика»

9.И.Г.Семакин, А.П.Шестаков «Основы программирования»

10.Личная библиотека Шотанов Е.Б.

11.www. narod.ru

. www.pascal-video.ru/pascal/programmirovanie-na-turbopascal.ru

13.www.strana-sovetov.com

.www.twirpx.com

.www.knowledge.allbest.ru


Содержание Задание на курсовой проект 1.Введение 2.Программирование линейных алгоритмов 3. Ввод-Вывод данных. Операторы языка Турбо Паскаль .

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ