Главная » Все файлы » Просмотр файлов из архивов » Документы » Организация данных в ЭВМ и основы программирования

Организация данных в ЭВМ и основы программирования, страница 2

2017-07-08СтудИзба

Описание файла

Документ из архива "Организация данных в ЭВМ и основы программирования", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Организация данных в ЭВМ и основы программирования"

Текст 2 страницы из документа "Организация данных в ЭВМ и основы программирования"

идентификатор = тип;

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

Описание типов.

Общий вид: Type идентификатор = тип;

Пример. TYPE NUMBER = INTEGER;

INDEX = -1...99;

VALUE = - 999...999;

LIST = ARRAY [INDEX] OF VALUE;

COLOR = (RED, GREEN, BLUE);

EXT = REAL;

Описание переменных.

Общий вид: Var - идентификатор, идентификатор: тип

Пример. VAR R1, R2, R3: INTEGER;

V1, V2, X1: REAL;

EGUAL: BOOLEAN;

WORD1: CHAR;

1.7. Операторы в программе

Любая программа на языке Паскаль начинается со слова PROGPAM и заканчивается словом END. (с точкой). Вслед за словом PROGRAM записывается имя программы, которое ей дает автор. Все имена (идентификаторы) записываются с использованием только 26 букв латинского алфавита и 10 арабских цифр. При этом все идентификаторы должны отличаться друг от друга. Вся первая строчка программы называется заголовком программы.

Во второй строке программы вслед за словом VAR через запятую перечислены идентификаторы А, В, Х1 и т.д. С помощью слова REAL указывается, что значения, которые могут принимать эти переменные, должны быть вещественными. Они могут быть также и целыми, поскольку целые числа являются подмножеством вещественных чисел. Вся вторая строка программы представляет собой раздел описания переменных.

VAR A, B, C, X1, X2: REAL

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

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

Файл - это набор данных. Это может быть:

1) совокупность величин, взаимосвязанных по каким либо признакам, обозначенная одним именем и хранящаяся во внешней памяти ЭВМ как единое целое;

2) хранящаяся в памяти ЭВМ программа решения конкретной задачи.

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

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

1.7.1. Операторные скобки

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

1.7.2. Операторы ввода

Часто первыми действиями, выполняемыми программой, являются действия по вводу данных. В языке Паскаль для этой цели служит процедура чтения READ, например, READ(A, B, C);

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

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

1.7.3. Оператор присваивания

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

D : = SQR(B) - 4 * A * C;

D=B*B-4*A*C;

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

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

/ - знак операции деления

В операторах присвоения часто в левой и правой частях стоят одни и те же идентификаторы, например: X := X + 1. Этот оператор имеет следующий смысл: необходимо взять текущее значение Х, изменить его в соответствии с действиями, указанными в правой части, и полученное значение взять в качестве нового текущего значения Х.

С помощью оператора присваивания можно задавать начальные значения переменным. Так, вместо процедуры

READ(A, B, C);

И последующего ввода значений, 5, 3, 2 можно было бы записать три оператора присваивания:

A := 5; B := 3; C := 2;

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

1.7.4. Условный оператор

Кроме перечисленных операторов существуют еще условные операторы, имеющие вид:

IF условие THEN оператор1 ELSE оператор2

Каждый условный оператор осуществляет выбор одной из альтернатив. Этот выбор определяется значением условия, которое стоит после разделителя IF. Условие может принимать два значения: истина или ложь. Если значение условия истина, то выполняется оператор1, а вслед за ним оператор, стоящий за всем условным оператором. Если значение условия ложь, то выполняется оператор2, а вслед за ним оператор, стоящий за всем условным оператором. Таким образом, в результате выполнения условного оператора будет выбран и выполнен один из операторов, стоящих внутри условного оператора. В языке Паскаль разрешается использовать сокращенную форму условного оператора, имеющего вид:

IF условие THEN оператор.

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

Пример. Если Х = 1, сделать Х = 2; если Х = 2, сделать Х = 1.

IF X = 1 THEN X := 2;

IF X = 2 THEN X := 1;

Это неверно при Х=1. Правильное решение:

IF X = 1 THEN X := 2 ELSE

IF X :=2 THEN X :=1;

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

После разделителей THEN и ELSE может стоять один оператор. Для того чтобы обойти синтаксическое ограничение, имеется составной оператор, служащий средством группирования других операторов. Составной оператор - это один оператор. Поэтому, если после любого из разделителей THEN или ELSE по сути решения задачи требуется записать более одного оператора, то необходимо использовать составной оператор. Он начинается со слова BEGIN и заканчивается словом END. Между ними может располагаться любая последовательность операторов.

Для ввода и вывода данных предусмотрены процедуры:

READ

READLN

WRITE

WRITELN

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

Процедура READLN (А) считывает данные из одной строки и обеспечивает переход к началу следующей строки. Процедура READLN без параметров осуществляет переход к началу следующей строки.

READLN(A, B, C, D); эквивалентно

READ(A); READ(B); READ(C); READ(D); READLN;

Для вывода данных используются процедуры WRITE и WRITELN. Различие между ними такое же, как между READ и READLN. WRITELN начинает сообщение с новой строки, а WRITE помещает в выходную запись сообщения друг за другом.

Пример. X = 5, Y = 7. Вывести эти значения.

WRITЕLN (X, Y); Получим: 57 (два значения без пробела между ними).

WRITELN (‘X=‘,X, ‘Y=‘,Y); Получим: X=5Y=7 (тоже без пробела).

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

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

WRITELN(‘X=‘, X:4,’ Y=‘, Y:4); X= 5 Y= 7

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

WRITELN(X:7:3)

Пример. Максимальное из трех чисел уменьшить на 0.3

IF Y > MAX THEN MAX:=Y

ELSE IF Z>MAX THEN MAX:=Z;

MAX:=MAX-0.3

Задача. Вычислить Y=X*X+1, если X<0

Y=X-2.1, если X>/2

SINX, если 0<=X=</2

Задание. Найти ошибки, если они есть:

а) IF A<B THEN A:=

б) IF X>0 THEN S:=

в) IF K<>M THEN K:=M;

г) IF 5 then S:=S+5;

Пример. Какие значения будут иметь переменные А и В в результате выполнения фрагмента программы?

IF A<B THEN A:= B

Дано: А=0.5, В = 1.7

Ответ: А=0.5, В=0.5

Задача. Какая задача решается?

IF X<Y THEN MAX:=Y ELSE MAX:=X;

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

IF X=Y THEN BEGIN X:=0;

Y:=0;

END

ELSE IF X < Y THEN X:=0 ELSE Y:=0;

1.7.5. Пример простой программы

Решить квадратное уравнение АХ*Х + ВХ + С = 0

Возможности:

1) если А=0, В=0, С=0, то уравнение имеет бесконечное множество решений;

2) если А=0, В=0, С<>0, то уравнение не имеет решений;

3) если А=0, В<>0, С<>0, то уравнение имеет единственный корень Х=-С/В

4) если А<>0, В<>0, С<>0, то решение уравнения зависит от дискриминанта D=B*B-4AC;

4a) если D<0, то уравнение имеет комплексные корни;

4б) если D=0, то уравнение имеет два одинаковых корня X=-B/2A;

4в) если D>0, то уравнение имеет два корня X1 = (-B+D) / 2A;

X2=(-B-D)/2A

PROGRAMM QUADRA

VAR A,B,C,D,X1,X2: REAL;

BEGIN

WRITE (‘ВВЕДИТЕ А, В, С’);

READLN(A,B,C);

IF (A=0) AND (B=0) AND (C=0)

THEN WRITELN (‘Уравнение имеет беск. множество решений’)

ELSE IF (A=0) AND (B=0) AND (C<>0)

THEN WRITELN (‘Уравнение не имеет решений’)

ELSE IF (A=0) AND (B<>0) AND (C<>0)

THEN WRITELN (‘Корень Х = ’ -C/B)

ELSE IF D<0 THEN

WRITELN (‘Комплексные корни’)

ELSE

WRITELN (‘Два равных корня Х=’, -В/2А)

ELSE BEGIN D:=SWRT(B*B-4*A*C);

X1:=(-B+SQRT(D))/(2*A);

X2:=(-B-SQRT(D))/(2*A);

WRITELN(‘Корни уравнения: X1=‘,X1,’ X2=‘,X2)

END;

END.

1.7.6. Оперетор безусловного перехода

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

Goto метка;

В качестве меток в языке Паскаль разрешается использовать целые числа из диапазона 0…9999 или идентификаторами. Метка может предшествовать любому оператору и отделяться от него двоеточием

Пример:

………….

Goto 99;

……………

99:writeln(‘выполнен оператор’);

…………….

Все метки, прежде чем они используются в программе, должны быть описаны в разделе описания меток. Напомним еще раз одно из основных правил языка программирования Паскаль: все объекты, используемые в программе, должны быть описаны. Метки в этом смысле не представляют собой исключения. Раздел описания меток начинается со слова LABEL, за которым через запятую перечисляются используемые в программе метки, например: LABEL 5, 99, 100, start, error;

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

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

Program summa;

Label 99;

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5193
Авторов
на СтудИзбе
434
Средний доход
с одного платного файла
Обучение Подробнее