- •Лекция 2. Основные понятия. Структура программы. Ввод-вывод. Основные понятия
- •Основные понятия программирования
- •Способы записи алгоритма
- •Структура программы
- •При описании переменной можно ее инициализировать, например:
- •Определение символических констант
- •Оператор присваивания
- •Оператор-выражение
- •Оператор вызова функции
- •Использование функции printf
- •Использование функции scanf
- •Контрольные вопросы и упражнения
Основные понятия программирования
Программирование – это наука, изучающая теорию и методы разработки, производства и эксплуатации программного обеспечения ЭВМ.
Затраты на разработку, создание и эксплуатацию программ высоки и постоянно возрастают. До половины затрат на разработку программ требует ее отладка.
Отладка программы - обнаружение ошибок в программе, их локализация и исправление.
Методы отладки
тестирование;
верификация.
Тестирование - выполнение программы вручную или на ЭВМ на контрольных примерах (тестах) с целью обнаружения ошибок или изучения механизма ее работы. Тест - исходные данные программы вместе с ожидаемым правильным результатом работы.
Верификация - доказательство правильности программы в общем виде, по законам математики.
Алгоритм - это описание последовательности операций, направленной на решение поставленной задачи. Основное свойство алгоритма – дискретность.
Процесс решения задачи представляется в виде последовательности шагов - операций.
Операция - действие конечной продолжительности над некоторыми объектами. Операнд - объект, участвующий в операции. Оператор - это описание операции. Алгоритм состоит из операторов.
Процесс–последовательность операций при выполнении алгоритма для конкретных исходных данных. Процессор - исполнитель алгоритма (процесса).
Алгоритмический язык - система обозначений для записи алгоритмов, например, язык программирования представляет собой систему обозначений для записи программ. Программа – алгоритм для выполнения на ЭВМ.
Способы записи алгоритма
1. Текстовый: в виде текста на естественном или искусственном языке, в том числе на языках программирования. Универсален, наиболее распространен.
2. Табличный: в форме двумерных таблиц (таблицы решений, таблицы переходов и т. п.) Не универсален, но удобен в отдельных случаях.
3. Графический. Наиболее нагляден. Используется в виде схем алгоритмов и программ.
Схема алгоритма состоит из блоков, обозначающих действия, соединенных стрелками, определяющими порядок выполнения действий. Блоки называются символами.
Правила оформления схем регламентируются государственными и международными стандартами на оформление программной документации.
Основными символами являются:
"процесс" (прямоугольник) - для описания операций ввода, обработки и вывода данных;
"решение" (ромб) - для разветвления алгоритма;
"пуск-останов" (овал) обозначает начало, конец и прерывание выполнения алгоритма;
"комментарий" - для пояснения схемы.
Основные символы, используемые в схемах алгоритмов, представлены на рис 2.1.
Рис. 2.1. Основные символы (виды блоков) схем алгоритмов
Структура программы
Любая программа на языке С состоит из одной или более "функций", являющихся основными компонентами программы. Одна из функций, с которой начинается выполнение программы, называется главной и всегда носит имя main. Остальные функции – это подпрограммы, которые могут вызываться либо из главной функции, либо из других подпрограмм. Простая программа, состоящая только из функции main, имеет следующую структуру:
Директивы препроцессора
main ()
{ Описания переменных
Операторы
}
Заголовок функции - main(). Круглые скобки после имени main как раз и указывают, что это функция. Тело функции заключается в фигурные скобки и состоит из объявлений переменных и операторов, опиcывающих процесс обработки данных.
В программу можно включать комментарии, начинающиеся с пары символов /* и заканчивающиеся парой */ (они могут быть везде, где могут быть пробелы).
Пример простой программы:
/* Программа 2.1.*/
/* Сложение двух целых чисел */
#include <stdio.h>
main ()
{ int a, b; /* объявление целочисленных переменных а и b */
printf ("Задайте два числа: "); /* вывод сообщения */
scanf ("%d %d", &a, &b); /* ввод значений а и b */
printf ("%d + %d = %d\n", a, b, a+b); /* вывод результата */
return 0;
}
При выполнении этой программы на экране появится сообщение:
Задайте два числа:
и затем программа будет ждать, пока вы не введете числа (ввести можно в той же строке, разделяя числа пробелом). Например:
Задайте два числа: 328 54
Затем появится результат в виде:
328 + 54 = 382
В этой программе директива препроцессора #include <stdio.h> служит для включения в программу библиотечного файла stdio.h, содержащего объявления стандартных функций ввода/вывода, таких как printf, scanf. Тело функции main содержит три оператора вызова функций printf и scanf.
Обратите внимание, что все ключевые слова в языке Си пишутся строчными буквами, директивы препроцессора начинаются с символа #. Для наглядности принята ступенчатая форма записи программы.
Считается, что программы, работающие под управлением операционной системы MSDOS, должны вернуть системе код завершения 0 в случае успешного выполнения и любой другой в случае ненормального завершения. Поэтому функцияmain() заканчивается оператором возврата значенияreturn 0;
Объявление переменных и основные типы данных
При объявлении переменных указываются имена переменных и типы значений этих переменных:
тип_1 имя_1;
тип_2 имя_2;
Имя (идентификатор) - это последовательность латинских букв и цифр, начинающаяся с буквы. Можно использовать в имени символы подчеркивания вместо пробелов, когда имя состоит из нескольких слов. Если несколько переменных имеют один и тот же тип, то их можно описать вместе, перечислив имена через запятую:
тип имя_1, имя_2, ... ;
К основным типам данных относятся целые типы (int, short, long, unsigned), символьный тип (char) и вещественные типы или типы с плавающей точкой (float, double).
Примеры описаний переменных:
float x,y,z; /* вещественные числа */
double x1,x2; /* вещ. числа двойной точности */
char simv; /* символ */
int i,j; /* целые числа */
long summa; /* длинное целое */
short k1,k2; /* короткие целые */
unsigned count; /* беззнаковое целое (неотрицательное) число */
Объем памяти, занимаемой данными различных типов, зависит от типа компьютера, операционной системы и конкретной реализации языка С. Обычно значение типа char занимает 1 байт, типов int, short, unsigned – 2 байта, long, float – 4 байта, double – 8 байтов.