Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Точка входа в программу (функция main)
Введение Си - язык программирования высокого уровня разработанный в начале 1970-х годов сотрудниками исследовательского центра ” Bell Telephone Laboratories ” Денисом Ритчи. Первоначально язык Си был создан, для новой по тем временам операционной системе UNIX. Позднее он был перенесен на многие другие операционные системы и стал одним из самых используемых языков программирования. Дописать Этапы написания программы Разработка программ предложенных в данной брошюре должна состоять из следующих пунктов. Постановка задачи. На этом этапе задача, составленная в терминах предметной области, переводится в термины наиболее близкие к программированию. Другими словами формулируется техническое задание. Проектирование поставленной задачи. Данный пункт, включает в себя разработку и описание процессов поставленной задачи. Создание алгоритма работы программы. Разработку пользовательского интерфейса. Этот этап также определяет, сколько времени может занять тот или иной проект. Кодирование программы. На этом этапе готовый алгоритм, переводится программистом в программный код. Ошибка многих начинающих программистов заключается в том, что они бросаются кодировать понятные им куски кода программы, пропуская первых два пункта. Это, как правило, приводит к существенному удлинению сроков написания программ. В результате на свет появляются непроработанные “кривые” программные модули исправление ошибок, в которых занимает очень много времени. Отладка программы. Отладка предназначена для выявления и исправления существующих синтаксических ошибок. Надо отметить, что отладчик не коим образом не сможет отладить ваши смысловые ошибки. Поэтому так важно не упустить этап создания алгоритма. Тестирование программы. Тестирование программы проверяет правильность работы программы и устойчивость ее к введению неправильных данных. Часто у программистов существует “замыленность” взгляда при тестирование своих программ. Они сами не осознавая вводят данные допустимые для ввода, где-то на бессознательном уровне понимая, что другие данные вводить нельзя. Поэтому не лишним будет отдать программу на тестирование некому постороннему лицу, чтобы он сумел объективно подойти к проблеме тестирования. Язык Си как и все языки программирования содержит свой алфавит. Алфавит состоит из идентификаторов, символов, специальных символов, разделителей, знаков пунктуации, знаков операций, зарезервированных слов, неиспользуемых символов. Подробнее о алфавите языка программирования Си можно посмотреть [1]. Мы будем предполагать, что читатель знаком с азами программирования на языке Паскаль или Бейсик из школьного курса, однако постараемся изложить данный материал наиболее доступно. В языке Си существуют следующие простые типы данных: Таблица типы данных
Наряду с простыми типами в языке Си существуют и составные типы, такие как массивы, структуры, объединения и файловый тип. Рассмотрим некоторые операции языка Си (Таблица Операции). Приведем здесь лишь операции характеризующие рассматриваемый язык. Такие общие операции как сложение умножение и т.д. присущие всем алгоритмическим языкам мы рассматривать не будем.
Таблица Операции
Рассмотрим общую структуру программы на языке Си – она имеет следующий вид. Здесь жирным шрифтом выделены обязательные пункты. Подключаемые файлы и библиотеки <описание функций> Точка входа в программу (функция main) <описание функций>
Программа на языке Си начинается с подключения библиотек и специальных файлов. Начинается данные действия с символа # и ключевого слова include, далее следует название подключаемого файла заключенного между символами < > или ” ”. Если подключается файл из стандартной библиотеке языка Си, то принято его размещать между символов < >, все остальные файлы заключаются в кавычки. #include <stdio.h> #include ”my_file.h” Приведем короткий список некоторых библиотек используемых в языке Си. Таблица Типы заголовочных файлов
После описания подключаемых файлов следует раздел описаний глобальных переменных и констант. Напомним, что константы – это выражение, которые состоят из констант знаков операций, круглых скобок и некоторых стандартных функций. Причем значение этого выражения является постоянным на всем этапе выполнения программы. сonst <тип константы> <имя константы> = <значение>; Глобальная переменная это переменная, которая определена и существуют на протяжение всей работы программы. Значение данной переменной доступно в любом месте программы. Пример определения констант и глобальных переменных приведен ниже. Пример #include <stdio.h> const int n=4; float pi=3.1415; Пример описания функций приведем позже, когда будем рассматривать раздел подпрограмм в языке Си. Рассмотрим основную функцию в программах на языке Си - main. Данная функция является точкой входа в программу, т.е с этой функции начинается выполнение программы. Без этой функции программа работать не будет. Функция main имеет следующий формат записи. <тип> main (int argc, char **argv) Здесь argc и argv два необязательных параметра, а тип определяет возвращаемый функцией результат. Эти параметры передаются из внешнего окружения. Первый параметр служит для передачи числа передаваемых строк, второй для передачи самих строк. Функция main может иметь и третий параметр, который принято называть argp, и который служит для передачи в функцию main параметров операционной системы (среды) в которой выполняется программа на языке программирования С. Однако во многих случаях функция main используется без параметров вообще. void main(){ } Все действия, выполняемые внутри функции заключаются в системных скобках { } – это аналог связки begin-end в языке Паскаль. Приведем пример программы пустой программы. Пример #include <stdio.h> void main(){ // … действия }
Данная программа не производит никаких действий, однако успешно компилируется и запускается. Следует заметить, что если тип программы не void, то необходимо вернуть выходное значение с помощью комбинации return. Комбинация символов встречаемая в примере // предназначена для записи комментариев. Все, что стоит в строке после символов // будет закомментировано. Для комментирования большой части текста его заключают между символами /* */. Внутри любой функции в том числе и функции main можно производить вызов стандартных и созданных функций, проводить арифметические и логические операции использовать ключевые слова и операторы. Список операций и их назначение приведен в таблице операции. Все операции имеют свой приоритет. Например операции «() и []» имеет наивысший приоритет, а операция «,» самый низкий приоритет. К операциям также относятся операция условия «?:» и операция «sizeof». Операция «?:» единственная операция имеющая три операнда. Она имеет следующий вид: (выр1)?(выр2):(выр3) Вычисляется выражение выр1. Если это выражение имеет ненулевое значение, то вычисляется выражение выр2. Результатом операции будет значение выражения выр2. Если значение выражения равно нулю, то вычисляется выражение выр3 и его значение будет результатом операции. Например найти наибольшее из двух чисел x и y можно следующим образом: max=(x>y)?x:y; Операция sizeof вычисляет целочисленное значение величины типа или выражения в байтах. Например: sizeof(short int);
Приведем список ключевых слов используемых в языке Си. Список ключевых слов:
. Заметим, что ключевые слова не могут быть переопределены. Практически не одна программа не обходится без функций ввода и вывода. Рассмотрим некоторые функции ввода и вывода в языке Си. Функция printf() предназначен для форматированного вывода в стандартный поток ввода/вывода. Для ее использования необходимо подключить библиотеку ввода вывода stdio.h. Она имеет следующей набор параметров: int printf( const char *format, арг1, арг2, … ); Параметр «format» является управляющей последовательностью. Он имеет следующий вид: %[флаги][ширина][.точность][размер]тип Остальные необязательные параметры обозначенные символом арг1, арг2, … являются списком выводимых переменных. Их количество и тип задаются (определяется) в управляющей последовательности. Флаги могут принимать одно из следующих значений приведенных в таблице Флаги, а некоторые значения типов приведены в таблице Значения типов. Флаги
Значения типов
Функция scanf() предназначен для форматированного ввода данных. Для ее использования также необходима библиотека ввода вывода stdio.h. Она имеет почти эквивалентный набор параметров, что и функция printf(). Единственное отличие это знак & (взятие адреса), который необходимо ставить перед вводимыми переменными. Значение этого знака заключается в том, что введенное значение записывается по адресу, по которому находятся наши переменные арг1, арг2,… . int scanf( const char *format, &арг1, &арг2, …); Пример #include <stdio.h>
void main(){ // инициализируем переменные int a,b; float f; char ch; // производим присваивание переменных printf("Input a\n"); scanf("%d",&a); printf("\nInput the number a and the symbol c\n"); scanf("%d %c",&b, &ch); f = 2.2+a + b ; printf("%d\n",a); printf("a = %d b = %d f = %f ch = %c\n",a,b,f,ch); } Результат выполнения Input a 5 Input the number a and the symbol c 6 n 5 a = 5 b = 6 f = 13.200000 ch = n В языке Си реализованы и другие функции ввода/вывода например puts(), putchar(), gets(), getchar(). Более подробную информацию о функциях ввода/вывода представлена в [1].
Рассмотрим основные операторы языка Си. Операторы предназначены для управления процессом ее выполнения программы. Операторы в языке Си состоят из ключевых слов, выражений и других операторов. Приведем список основных операторов. Основные операторы
Условный оператор предназначен для реализации разветвляющихся алгоритмов. Данный оператор имеет следующий формат:
if (условие){ // действия } else{ // действия }
В случае если условие истинно, то выполняются действия следующие за условием. В противном случае выполняются действия следующие за ключевым словом else. В качестве условия в операторе может находится, как простое условие, так и составное объединенное различными логическими связками (! , && , || , …) . Пример иллюстрирующий работу оператора if с составным условием приведен ниже.
#include <stdio.h>
void main() { float a,b,c,f;
printf("Input a and b\n"); scanf("%f %f %f",&a, &b, &c);
if ((a>b) && (0!=c)){ f = (a+b)/c; } else{ f = (a+b)-c; }
printf("%f", f); } Для проверки нескольких условий используют конструкцию if-else-if:
if (условие 1){ // действия } else if (условие 2){ // действия } else if (условие 3){ // действия } ………………………………………………. else{ // действия } В такой связке условия выполняются сверху вниз. Как только одно из условий принимает истинное значение выполняется соответствующие действия, а остальная часть конструкции перестает выполняться. Еще одним оператором предоставляющим возможность множественного выбора является оператор switch. Оператор имеет следующий вид:
switch (выражение){ case const_1: // действия break;
case const_2: // действия break; ………………………… case const_N: // действия break;
default: // действия }
При выполнение данной конструкции сначала вычисляется выражение находящееся после ключевого слова switch, затем последовательно производится сравнение выражения с каждой из меток начинающихся ключевым словом case. Далее выполняется последовательность действий следующих за двоеточием. В том случае, когда значение выражения не соответствует ни одной из меток, выполняются действия следующие за оператором default.
Литература 1. Б.Керниган, Д. Ритчи. Язык программирования С, 2-е издание. Пер. с англ. – М. Издательский дом «Вильямс», 2007. 304 с. 2. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 474. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |