Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗФ_ОАиП / Лекции ГГУ Скорины - Программирование.doc
Скачиваний:
179
Добавлен:
21.03.2016
Размер:
2.27 Mб
Скачать

3. Структура простой программы на языке с

Задача. Ввести с клавиатуры два числа и вывести на экран максимальное из них.

На Паскале (для сдачи на DL):

{программа нахождения максимума}

program Task;

var

a, b, max : integer;

begin

readln(a);

readln(b);

if a > b then max := a

else max := b;

writeln(max);

end.

Блок-схема решения задачи:

На языке С (в соответствии с правилами оформления):

/* Иванов И. ПМ-11 вариант 17

Работа 1.1. Найти максимальное из двух чисел */

//подключить заголовочные файлы для стандартных функций

#include <stdio.h>

#include <conio.h> // для getch() и clrscr()

#include <bios.h> // для bioskey(0)

void main() {

int a, b, max;

clrscr(); // очистить экран

printf("a = ");

scanf("%d", &a);

printf("b = ");

scanf("%d", &b);

printf("Вы ввели a = %d и b = %d\n", a, b);

if (a > b)

max = a;

else

max = b;

printf("max = %d\n", max);

bioskey(0); // ждать нажатия любой клавиши

//getch(); // ждать нажатия любой клавиши

}

Про оформление задач:

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

  2. Текст программы должен быть структурирован (желательный отступ – два символа, если пользуетесь табуляцией, то ставить Options → Environment → Editor → Tab Size = 2, строгая вложенность операторов, скобка { на новой строке или в конце строки.

  3. До ввода исходных данных программа должна выводить текст, поясняющий их содержание.

  4. Исходные данные после ввода, но не во время него, вывести на экран.

  5. Каждый вывод сопровождать текстом, поясняющим содержание данных.

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

  7. Не комментировать каждую строку программы.

/* Иванов И. ПМ-11 вариант 17

Работа 1.1. Найти максимальное из двух чисел */

//подключить заголовочные файлы для стандартных функций

/* простая программа*/ - комментарий, внутри комментария не может быть символов /* и */

/*, */ - открывающая и закрывающая скобки комментария (возможно несколько строк)

// - комментарий до конца строки

#include <stdio.h>

#include <conio.h>

#include <bios.h>

Подключение (include – включить) к тексту программы так называемые заголовочных (h от header – заголовок) файлов системы. В этих файлах описаны системные функции и их аргументы (прототипы функций), а также данные (например, константы, описания структур данных), которые можно использовать в программе. Используя эти описания, компилятор проверяет правильность вызова системных функций. В нашем случае программа использует следующие системные функции:

  1. функции ввода scanf() и выводаprintf(), описания которых находятся в заголовочном файле <stdio.h> («STanDardInput/OutputLibrary»);

  2. функцию очистки экрана clrscr() с описанием в файле <conio.h>;

  3. функцию ожидания нажатия какой-либо клавиши bioskey(0), описание которой находится в заголовочном файле <bios.h> (илиgetch() с описанием в файле <conio.h>).

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

void main() {

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

Объявление функции voidmain() илиvoidmain(void), что значит: «функция с именемmain, которая ничего не возвращает, и у которой нет аргументов(void)». Словоvoidможно переводить как «ничто». Далее открываются фигурные скобки, и идёт описание этой функции, в конце фигурные скобки закрываются. Между фигурных скобок находится тело функции, в котором описана последовательность действий, производимых данной функцией — логика функции.

Функция main() – эта главная функция программы, именно она начинает выполняться, когда программа запускается. Функция main() не совсем обычная и на нее накладываются определённые ограничения:

  1. в каждой программе может быть только одна функция main();

  2. функцию main()нельзя вызывать.

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

Фигурные скобки { } отмечают начало и конец тела функции. НЕ НАДО СТАВИТЬ ТОЧКУ С ЗАПЯТОЙ ПОСЛЕ MAIN()!!!

int a, b, max;

Объявление трех переменные с именами a, b и max, которые могут принимать только целочисленные значения (тип – int). В языке С есть разница между маленькими и большими буквами: две разные переменные bиB, операторы нельзя писать большими буквами.

clrscr(); // очистить экран

printf("a = ");

Функция вывода информации на печать (экран). С ее помощью выводится фраза, заключенная в кавычки: “a= ”.

scanf("%d", &a);

Функция ввода информации с клавиатуры. Работа программы приостанавливается до тех пор, пока пользователь не наберет на клавиатуре какое-либо число и нажмет клавишу «Enter». Поступившее значение будет направлено в переменную a (не забываем про знак & перед именем переменной при вводе, который означает, что в функцию передается адрес переменной). “%d” означает, что вводится целая переменная. Точно таким же образом в следующих строках будет организован ввод значения числовой переменной b.

printf("b = ");

scanf("%d", &b);

printf("Вы ввели a = %d и b = %d\n", a, b);

Функция вывода на экран значений двух переменных aиbс поясняющим текстом. Т.к. выводим две целые переменные, то должно быть два раза “%d”. При выводе имена переменных указываются без каких-либо знаков перед ними. Обратите внимание на комбинацию ‘\n’ – она задаёт специальный символ, который является командой: «перейти на следующую строку». Таких специальных символов несколько, все они записываются с помощью символа ‘\’ (символ «backslash»).

if (a > b)

max = a; // надо ; в отличие от Паскаля

else

max = b;

Сравниваются значения переменных a и b. Если проверяемое условие выполнено, т.е. значение переменной a больше, то оно присваивается переменной max – выполняется действие, записанное после проверки условия. В противном случае (else – иначе) в переменную max заносится значение b.

printf("max = %d\n", max);

Выводит на экран два сообщения: текстовое (max = ) и числовое (значение переменной max).

bioskey(0); // ждать нажатия любой клавиши

//getch(); // ждать нажатия любой клавиши

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

}

Программа завершается закрывающей фигурной скобкой.