Научно - Информационный портал



  Меню
  


Смотрите также:



 Главная   »  
страница 1 страница 2 страница 3

 

 

ПРИЛОЖЕНИЕ Б

 

Сообщения об ошибках.



2 Identifier expected (Не указан идентификатор).

В этом месте должен находится идентификатор.

3 Unknown identifier (Неизвестный идентификатор)

Этот идентификатор не был описан.

4             Duplicate identifier (Двойной идентификатор).

Попытка дважды описать один и тот же идентификатор.

5             Syntax error (Синтаксическая ошибка).

В исходном тексте найден недопустимый символ. 

10 Unexpected end of file (Не найден конец файла).

Причины этого сообщения могут быть следующие:

§исходный файл закончился перед последним END основного раздела операторов; вероятно в программе неодинаковое количество операторов BEGIN и END;

§не закончен комментарий.

11 Line too long (Слишком длинная строка).

Максимальная длина строки, обрабатываемая компилятором, равна 126 символам.

12 Type identifier expected (Здесь нужен идентификатор типа).

Не указан тип идентификатора.

16        Disk full (Диск заполнен).

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

20 Variable identifier expected (Отсутствует идентификатор переменной).

На этом месте должен быть идентификатор переменной.

21 Error in type (Ошибка в объявлении типа).

Объявление типа не может начинаться с этого символа.

26 Type mismatch (Несоответствие типа).

Это сообщение может быть вызвано следующими причинами:

§    несовместимые типы переменной и выражения в операторе присваивания;

§    тип выражения не совместим с типом индекса при объявлении массива;

§    несовместимые типы операндов в выражении.

33 Labеl identifier expected (Нужен идентификатор метки)

Метка не обозначена с помощью идентификатора, как это требуется из контекста программы.

36 BEGIN expected (Нужен BEGIN)

37 END expected (Нужен END)

38 Integer expression expected (Нужно выражение типа Integer).

41 Operand types do not match operator (Типы операндов не соответствуют операции).

Данная операция не может быть применена к указанным операндам.

42 Error in expression (Ошибка в выражении)

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

50 DO expected (Нужен оператор DO)

57 THEN expected (Требуется THEN)

58 TO or DOWNTO expected (Требуется TO или DOWNTO)

62 Division by zero (Деление на ноль)

Предшествующая операция пытается выполнить деление на ноль.

64 Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа).

Нарушены следующие ограничения: 

§    процедуры READ и READLN могут считывать переменные символьного, целого, действительного и строкового типов;

§    процедуры WRITE и WRITELN могут выводить переменные символьного, целого, действительного, логического и строкового типов.

76 Constant out of range (Константа нарушает границы).

Возможные причины сообщения:

§          попытка указать индекс массива, выходящий за его границы;

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

79 Integer or real expression expected (Нужно выражение вещественного или целого типа).

81 Label already defined (Метка уже определена).

Данная метка уже помечает оператор.

85 «;» expected (Нужно указать «;»).

97 Invalid FOR control variable (Неправильный параметр цикла оператора FOR).

98 Integer variable expected (Нужна переменная целого типа).

Предшествующая переменная должна иметь целый тип.

103 Integer or real variable expected (Нужна переменная типа INTEGER or REAL).

113 Error in statement (Ошибка в операторе).

Данный символ не может быть первым символом в операторе.

207 Invalid floating point operation (Недопустимая операция с плавающей запятой) .

Возможные причины сообщения:

§        отрицательный аргумент функции SQRT;

§        аргумент функции LN равен нулю или имеет отрицательное значение.

 



Методические указания

к лабораторной работе

Turbo-Pascal


Часть 2

 

 



1 Цель работы

Изучение случая ветвления программ.

 

 

2 Задачи работы



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

 

 



3. Порядок выполнения работы

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

3.2   Провести численные расчеты для a=1, b=2, c=3; a=-5, b=0, c=10.

3.3   Дополнить программу следующим фрагментом. Определить, принадлежит ли вычисленное значение максимума (минимума) интервалу [0.5; 2.0] и выдать на экран соответствующее сообщение. Отладить и выполнить программу с произвольными значениями входных данных.

 

 

4. Требование к отчету 


Отчет о проделанной работе должен содержать:


–название и цель работы;

–номер варианта для выполнения задания и условие своего варианта;

–блок-схему решения задачи;

–тексты программ;

–полученные при расчетах численные результаты;

–письменные ответы на контрольные вопросы п.7 по указанию преподавателя.

 

 

5 Теоретические положения



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

Рисунок 1 Блок-схема алгоритма ветвления

 
5.1 Логические выражения

Логические выражения могут принимать одно из двух значений TRUE (истина) и FALSE (ложь). Простейшими логическими выражениями являются выражения отношения:

A1 OP A2

Здесь А1 и А2 – выражения, а ОР – операция отношения. Операции отношений в Turbo Pascal обозначаются так: = (равно), <> (не равно), < (меньше), > (больше), < = (меньше или равно) , > = (больше или равно).

Примеры логических выражений: 3<5; 18>=2; A=B.

В одном выражении может потребоваться проверка нескольких подобных условий. Условия могут быть связаны с помощью логических операций, из них наиболее часто используемые – это AND (И) и OR (ИЛИ).

Выражение А AND B дает значение TRUE (истина), только в том случае, если А и B имеют значение TRUE. Во всех остальных случаях значение выражения А AND B - FALSE (ложь).

AND =

AND =

AND =

Например, определить, попадает ли значение переменной Х в интервал от 0 до 10, можно с помощью условия:

(x=>0) and (x<=10)

Выражение А OR B дает значение FALSE (ложь), только в том случае, если А и B имеют значение FALSE. Во всех остальных случаях результат – TRUE (истина).



OR =

OR =

OR =

 

 



5.2 Составной оператор

Если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор.

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

Пример.


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

 

 

5.3 Оператор IF



Общий вид оператора IF:

IF A THEN ST1 ELSE ST2;

Здесь IF, THEN, ELSE – зарезервированные слова (если, то, иначе); А – логическое выражение, ST1, ST2– операторы (простые либо составные).

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение А. Если результат TRUE (истина), то выполняется оператор ST1, а оператор ST2 пропускается; если результат FALSE (ложь), наоборот, оператор ST1 пропускается. а выполняется оператор ST2. Затем, в обоих случаях управление передается к следующему оператору.

 

Например:



При выполнении этого фрагмента переменная Y получит значение переменной Х, если это значение не превышает Z, в противном случае Y станет равно Z.

Часть ELSE ST2 может быть опущена. Тогда при значении TRUE условного выражения выполняется оператор ST1, в противном случае этот оператор пропускается:

В этом примере переменная Y всегда будет иметь значение переменной Х, а в MAX запоминается максимальное значение Х. Такую форму оператора IF называют сокращенной.

Пример 1. Значения переменных a, b и с - целые числа. Определить наибольшее из них. 

Рассмотрим три способа решения этой задачи.

1 способ.

 

Если a>b, то max ищется среди а и с, в противном случае - среди b и с (см. рисунок 2).



Рисунок 2 Блок-схема алгоритма решения задачи 1-м способом

2 способ. 

 

 

Предварительно за max принимается большее из а и b, но если окажется, что с превышает принятую величину max, то последняя заменяется на с ( рисунок 3). 



Рисунок 3. Блок-схема алгоритма решения задачи 2-м способом

3 способ.

 

 

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



Рисунок 4. Блок-схема алгоритма решения задачи 3-м способом.

 

 

6 Методические рекомендации



При составлении программы следует использовать оператор READLN для ввода значений переменных a, b, c; следует ввести (и описать) переменную для обозначения искомого наибольшего (или наименьшего) значения (например, max или min). При решении задачи можно воспользоваться одним из способов, описанных в примере 1 п. 5.3. При выполнении задания п. 3.3, для проверки условия использовать оператор IF с логическим выражением, в котором используется операция AND.

 

 



7. Контрольные вопросы

7.1   Что понимают под алгоритмом ветвления?

7.2   Привести примеры случаев ветвления.

7.3   Как обозначается ветвление в блок-схемах?

7.4   Какие операторы ветвления существуют в языке Turbo Pascal?

7.5   Какой формат имеет оператор IF?

7.6   Какие различия между полной и сокращенной формой оператора IF?

 

 



Приложение

 


Номер варианта

Искомое значение


1

max (a+b+c, abc, a-b)

2

min (a+2b, b+3c, c)

3

min (2a-b, c2, b+c)

4

max (a/c, b+c, 5c)

5

min (3a, a+b+7c, 8c)

6

max (5a+7b, b-c, 3c)

7

min (a2, a+2b-c, c)

8

max (a+b+c, 3a+8, a+7c)

9

min (ab, ac, bc)

10

max (a, a2-b, ac)

11

min (a+7, b-4, 3c)

12

max (ab, b+5, ac)

13

min (a+2b, b-c, a+c)

14

max (4a, a2+c, b+c)

15

min (a-b, a-c, b-c)

 

 

Библиография

1. Информатика. Базовый курс / Симонович С.В. и др.- СПб: Питер, 2000. - 640 с.

2. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль - М.: Наука, 1998. - 128 с.

3. Фаронов В.В. Турбо Паскаль 7.0 - М.: Нолидж, 2000. - 576 с.

 

 



 



Методические указания

к ПРАКТИЧЕСКОМУ ЗАНЯТИЮ ПО КУРСУ «ИНФОРМАТИКА»

Алгоритмы линейной и разветвляющейся

структуры

 

 



1 Цель занятия

Изучение основ построения алгоритмов и программ линейной и разветвляющейся структуры

 

 

2 Задачи занятия



Освоение основных приемов и приобретение навыков в составлении алгоритмов и программ линейной и разветвляющейся структур

 

 



3 Содержание занятия

3.1 Ознакомиться с основными элементами блок-схем (приложение А), реализующими алгоритмы линейных и разветвляющихся структур и основными характеристиками алгоритмов (приложение Б).

3.2 Освоить приемы построения блок-схем алгоритмов линейных и разветвляющихся структур.

3.3 Разобрать приведенные в методических указаниях примеры.

3.4 Выполнить индивидуальные задания (по указанию преподавателя).

 

 



4 Требования к отчету

Отчет должен содержать:

·        название занятия;

·        результаты выполнения индивидуальных заданий;

·        основные теоретические положения по теме занятия.

 

 



5 Основные положения

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

Базовая структура следование образуется из последовательности действий, следующих одно за другим:

Псевдокод

Язык блок-схем

действие 1
действие 2
. . . . . . . . .
действие n



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

Пример 1. Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой путь прошел пешеход?




1. Ввести v1, v2, v3, t1, t2, t3.

2. S1 := v1 * t1.

3. S2 := v2 * t2.

4. S3 := v3 * t3.

5. S := S1 + S2 + S3.

6. Вывести значение S.

7. Конец.


Пример 2. Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который возвращает значение ИСТИНА, если верно утверждение: "число n кратно каждой своей цифре", и ЛОЖЬ — в противном случае.




1. Ввести число n

2. A := n mod 10 {разряд единиц}

3. B := n div 100 {разряд сотен}

4. C := n div 10 mod 10 {десятки}

5. L := (n mod A=0) and (n mod B=0) and (n mod C=0)

6. Вывод L

7. Конец


На приведенной выше схеме DIV и MOD соответственно операции деления нацело и получения остатка от целочисленного деления. В фигурных скобках записаны пояснения (комментарии) к операторам.

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

Структура ветвление существует в четырех основных вариантах:

·                     если-то;

·                     если-то-иначе;

·                     выбор;

·                     выбор-иначе.

 

 



Псевдокод

Язык блок-схем

1. если-то

если условие

   то действия

 все

Пример: Для положительных х вычислить значение функции sin(x)



если x > 0

   то y := sin(x)

 все






2. если-то-иначе

если условие

   то действия 1

   иначе действия 2

 все


Пример: Даны два числа, если первое из них больше второго, то его необходимо удвоить, а второе число приравнять единице, в противном случае первое число оставить без изменения, а второе – удвоить.

если a > b

   то a := 2*a; b := 1

   иначе b := 2*b

 все

 

 







3. выбор

выбор

   при условие 1: действия 1

   при условие 2: действия 2

   . . . . . . . . . . . .

   при условие N: действия N

 все


Пример: в зависимости от значения натурального числа n

могущего принимать значения 1, 2 или 3, присвоить функции y значения 

sin x, cos x или нуля.

выбор


   при n = 1: y := sin(x)

   при n = 2: y := cos(x)

   при n = 3: y := 0

 все






4. выбор-иначе

выбор

   при условие 1: действия 1

   при условие 2: действия 2

   . . . . . . . . . . . .

   при условие N: действия N

   иначе действия N+1

 все

Пример:


выбор

   при a > 5: i := i+1

   при a = 0: j := j+1

   иначе i := 10; j:=0

 все






 

 

 



 

Пример 3. Дано натуральное число n. Если число нечётное и его удвоение не приведет к выходу за 32767 (двухбайтовое целое число со знаком), удвоить его, иначе — оставить без изменения.

Чтобы удовлетворить условию удвоения, число n должно быть нечетным и меньше 16384.






1. Ввести число n

2. Если число n нечетное и меньше 16384, то n := n * 2

3. Вывод n

4. Конец



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

Пример 4. Составить алгоритм и программу, запрашивающую имя и затем приветствующую его обладателя.


страница 1 страница 2 страница 3

Смотрите также: