- •Министерство образования и науки российской федерации
- •Оглавление
- •3. Содержание отчета
- •4. Задание на курсовую работу
- •4.1. Пример перевода
- •5. Постановка задачи
- •6. Внешняя спецификация программы
- •6.1. Вход
- •6.2. Выход
- •6.3. Аномалии
- •7. Метод решения задачи
- •8. Описание алгоритма
- •8.1. Структура данных
- •8.2. Алгоритм главной программы
- •8.3. Выделение подпрограмм
- •8.4. Алгоритм подпрограммы обработки комментария (fcomment)
- •8.5. Алгоритм подпрограммы обработки оператора if (fif)
- •8.6. Обработка арифметического выражения
- •9. Структура программы
- •10. Синтаксические диаграммы арифметических и логических выражений
- •11. Пример программы мини-транслятора на Паскале
- •12. Варианты индивидуальных заданий
- •13. Библиографический список
- •109028 Москва, б. Трехсвятительский пер., 3/12.
- •113054 Москва, ул. М. Пионерская, 12.
3. Содержание отчета
Отчет включает в себя следующие разделы:
техническое задание;
оглавление;
задание на курсовую работу;
постановка задачи;
внешняя спецификация;
метод решения задачи;
описание алгоритма;
структура программы;
текст программы;
распечатка тестов и результатов работы программы;
выводы;
список литературы.
Все страницы нумеруются подряд (кроме титульного листа).
О
бразец
титульного листа
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский государственный институт электроники и математики
(Технический университет)
Курсовая работа
по дисциплине “программирование на языках высокого уровня”
Вариант _______
|
Исполнитель: студент группа
|
Руководитель:
|
Москва 2005
Образец оглавления
Задание на курсовую работу 1
Постановка задачи 2
Внешняя спецификация 6
Метод решения задачи 7
Описание алгоритма 8
структура программы 15
Текст программы конвертора на Паскале 17
Распечатка тестов и результатов 28
Выводы 32
Литература 33
4. Задание на курсовую работу
Написать конвертор на языке Си для перевода программ на языке Паскаль в текст программы на языке Си. Языки, а также допустимые операторы в исходном тексте, синтаксис арифметических и логических выражений определяются в соответствии с номером варианта. Для всех допустимых операторов в задании на курсовую работу должны быть приведены синтаксические диаграммы, в соответствии с которыми будет производиться анализ операторов исходного текста и их конвертирование (по согласованию с преподавателем синтаксис некоторых сложных операторов может быть упрощен). Необходимо описать возможное и обязательное использование пробелов в исходном тексте.
Исходные данные и результат хранятся в текстовых файлах, имена которых должны запрашиваться транслятором. При обнаружении синтаксической ошибки в операторе исходного текста транслятор должен вносить в выходной текст комментарий, включающий диагностическое сообщение, текст ошибочного оператора и осуществлять переход к следующему оператору.
Алгоритмы обработки отдельных операторов и других элементов исходного языка (константа, переменная, выражение) должны быть оформлены в виде подпрограмм.
Комментарии предусмотреть во всех вариантах. Комментарий не может располагаться внутри оператора. Для ключевых слов операторов в программе на языке Си используются только строчные буквы, а в программе на языке Паскаль - строчные и прописные. В идентификаторах возможны любые буквы - они конвертируются без изменений. Между отдельными лексемами может быть любое количество пробелов (точнее, пробельных символов - пробелов, табуляций и переводов строки). В одной строке исходного текста может быть несколько операторов или только часть одного оператора.
При формировании выходного текста можно не учитывать правило отступа.
4.1. Пример перевода
|
Исходный текст программы на языке Паскаль (* вычисление максимума *) Programmaximum; var a: array [1..50] of integer; max, imax, i, n : integer; Begin { ввод } Write(‘Введите N= ‘); readln(n); for i := 1 to n do read(a[i]); {вычисления} Max := -32768; for i := 1 to n do if a[i] > Max then begin Max := a[i]; imax := i; end; (* вывод *) Write(‘Max =’, Max:6); writeln(‘ его номер=’,imax: 2); end. |
Результат трансляции
/* вычисление максимума */ #include <stdio.h> void main(void) { int a[51]; int Max, imax, i, n; /* ввод */ printf("введитеn="); scanf("%d", &n); for (i = 1; i <= n; i++) scanf("%d", &a[i]); /*вычисления*/ Max = -32768; for( i=1; i <= n; i++) if (a[i] > Max) { Max = a[i]; imax = i; } /* вывод */ printf("Max=%6d", Max); printf(" его номер=%2d\n",imax); } |
