Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЙ ПРАКТИКУМ.doc
Скачиваний:
15
Добавлен:
11.11.2018
Размер:
996.86 Кб
Скачать

Лабораторная работа № 5

Тема: «Освоение работы на ОС/390 с использованием языков программирования С и С++»

Базы данных единой модели перевозочного процесса поддерживаются в информационно-вычислительных центрах железных дорог на Mainframe. Целью данной лабораторной работы является освоение операционной системы ОС/390 Mainframe и разработка кода программы на языке С.

Следующий пример показывает простую OS/390 C программу, которая переводит температуру из шкалы Цельсия в Фаренгейт. Вы можете ввести значение температуры в командной строке или дать возможность программе задать запрос пользователю о значениях температуры.

В данном примере, главная программа вызывает функцию convert() для перевода

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

CBC3UAAM

#include <stdio.h> 1

#include "cbc3uaan.h" 2

void convert(double); 3

int main(int argc, char **argv) 4

{

double c_temp; 5

if (argc == 1) { /* получет значение по Цельсию из stdin */

printf("Enter Celsius temperature: \n"); 6

if (scanf("%f", &c_temp) != 1) {

printf("You must enter a valid temperature\n");

}

else {

convert(c_temp); 7

}

}

else { /* перевод аргументов из командной строки в Фаренгейт*/

int i;

for (i = 1; i < argc; ++i) {

if (sscanf(argv[i], "%f", &c_temp) != 1)

printf("%s is not a valid temperature\n",argv[i]);

else

convert(c_temp); 7

}

}

}

void convert(double c_temp) { 8

double f_temp = (c_temp * CONV + OFFSET);

printf("%5.2f Celsius is %5.2f Fahrenheit\n",c_temp, f_temp);

}

Рис 3. Перевод темпереатуры из Цельсия в Фаренгейт

CBC3UAAN

/**************************************************************

* Пользовательский include file: cbc3uaan.h * 9

**************************************************************/

#define CONV (9./5.)

#define OFFSET 32

Рис. 4 Пользовательский #include File для программы преобразования из Цельсия в Фаренгейт

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

1. Эта предпроцессорная директива включает системный файл, который

содержит декларирование стандартных библиотечных функций, таких как printf () -

функция, используемая в этой программе.

Компилятор ищет системные библиотеки для файла STDIO.

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

Компилятор ищет пользовательские библиотеки для файла CBC3UAAN.

Если компилятор не может найти файл в пользовательских библиотеках,

он ищет его в системных библиотеках.

3. Это функция декларирования прототипа. Этот оператор декларирует convert()

как внешнюю функцию, имеющую один параметр.

4. Программа начинает выполнение в этой точке входа.

5. Здесь автоматически определяются данные для программы main()программы.

6. printf оператор– это вызов библиотечной функции, которая позволяет вам форматировать

вывод и печатать его на стандартном устройстве вывода. Функция printf()

объявлена в стандартном I/O заголовке файла stdio.h, включенного в начале программы.

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

8. Это определение функции. В данном примере объявление этой функции

появляется непосредственно перед определением main() функции. Код функции находится в том же файле, что и main() функция.

9. Это пользовательский include файл, который содержит CONV и OFFSET.

Пример компиляции, связки и запуска программы OS/390 C

В общем, вы можете компилировать, связывать и запускать OS/390 C программы в пакетном режиме OS/390, TSO, или OS/390 shell-оболочкой. Вы не можете запустить IPA Link шаг под TSO, или в пакетном режиме OS/390, используя ISPF интерфейс.

В качестве префикса используется имя пользователя. Например, в PETE.TESTHDR.H, префикс пользователя - PETE.