Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_Вагарина_1.docx
Скачиваний:
8
Добавлен:
13.11.2019
Размер:
186.34 Кб
Скачать

Саратовский государственный технический университет

Кафедра информационных систем и технологий

Вагарина Н.С.

Методические указания по дисциплине

Программирование на языке высокого уровня”

( Часть 1)

для студентов направления

230100 «Информатика и вычислительная техника»

Саратов 2011

ВВЕДЕНИЕ 3

1. ПЕРВАЯ программа на языке Си 3

Примеры 6

Задания для самостоятельной работы 7

2. Переменные. Основные типы данных. Форматный ввод-вывод 8

Примеры 12

Упражнения 13

Задания для самостоятельной работы 15

3. Операции и выражения 16

Примеры 20

Упражнения 21

Задания для самостоятельной работы 21

I. Вычисление значения математического выражения 21

II. Решение задач на составление выражений 22

4. Операторы ветвления 23

Примеры 26

Задания для самостоятельной работы 28

I. Обработка введенного символа 29

II. Вычисление значения функции 29

III. Mультиветвление 31

5. Операторы цикла и передачи управления 32

Примеры 34

Задания для самостоятельной работы 35

I. Решение задач тремя способами (с for, while и do-while) 35

II. Детерминированные циклы 36

III. Итерационные циклы 37

6. Массивы 38

Примеры 40

Задания для самостоятельной работы 41

I. Одномерные массивы 41

II. Двумерные массивы 42

7. СТРОКИ 43

Примеры 44

Задания для самостоятельной работы 46

СПИСОК ЛИТЕРАТУРЫ 47

Введение

Данные методические указания предназначены для студентов 1 курса специальности «Информатика и вычислительная техника» (бакалавриат), изучающих язык Си в рамках дисциплины «Программирование на языке высокого уровня».

Дисциплина “Программирование на языке высокого уровня” входит в учебный план бакалавриата 230100 «Информатика и вычислительная техника», изучается в двух семестрах и относится к циклу общепрофессиональных дисциплин и блоку дисциплин, обеспечивающих программную подготовку студентов. Дисциплина основана на знаниях, полученных в результате изучения дисциплины «Информатика» и является базисом для изучения таких общепрофессиональных и специальных дисциплин как «Технология программирования», «Объектно-ориентированное программирование», «Базы данных» а также для всех последующих курсов в области программирования.

Целью данных методических указаний - изучение студентами основ структурного программирования на языке высокого уровня. В них излагаются основы языка программирования С, приведены краткие теоретические материалы, примеры решения типовых задач и варианты рекомендуемых индивидуальных заданий по темам, соответствующим рабочей программе дисциплины (1 семестру). Представленный материал предназначен для изучения основ языка С и не требует первоначального знакомства с языком С. В нем описывается структура программы, написанной на С, типы данных, используемые в языке, операции языка, конструкции ветвления, циклов и передачи управления, а также даются основы процедурного программирования.

1. Первая программа на языке Си

Си (англ. C) — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков. Для языка Си характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и обширный набор операций.

Для того чтобы описать структуру программы, написанной на C, рассмотрим простейшую программу, выводящую на экран строку “This is my first program!”.

//PROG1.C - ИМЯ файла с программой.

#include <stdio.h>

int main(void)

{

printf( "\n This is my first program!"); //вызов функции printf

return 0;

}

Результат выполнения программы:

This is my first program!

В первой строке текста программы - однострочный комментарий, начинающийся парой символов '//', заканчивающийся не изображаемым символом "конец строки". Между этими разделителями может быть помещен произвольный текст. В данном примере в ком­ментарии указано имя файла prog1.c, в котором хранится исход­ный текст программы. В программе может использоваться и многострочный комментарий, который начинается с символов /* и заканчивается символами */.

Вторая строка является директивой препроцессора – указанием компилятору. Препроцессор - программа, специальная часть компилятора, обеспечивающая предварительную обработку входных данных для основной программы. Директивы могут быть разными. Например, позволяющие подключить стандартные библиотеки функций используемого компилятора или оттранслированные модули, написанные самим программистом. В данном случае помещена команда (директива) препроцессора #include, указывающая препроцессору включить в компилируемый файл содержимое другого файла. В этом примере требуется от компилятора включить информацию, хранящуюся в файле stdio.h, который является стандартной частью всех пакетов компилятора языка С. Этот файл обеспечивает поддержку ввода с клавиатуры и отображения вывода. Другими словами, это «подключаемое» содержимое подставляется на место директивы #include.

Если программист хочет использовать в своей программе такие стандартные функции как косинус (cos), синус (sin), степень числа (pow), то он должен использовать директиву #include <math.h>, для использования функции ожидания ввода любого символа с клавиатуры без отображения на экране (getch)- директиву #include <conio.h>, функцию конкатенации строк (strcat)- директиву #include <string.h>. Если в программе, например, используется функция cos (функция вычисления косинуса), но не указана директива include <math.h>, то на этапе компиляции возникнет ошибка. Функциональное значение основных заголовочных файлов:

math.h -математические функции;

сtype.h - функции проверки и преобразования символов;

stdio.h - функции ввода вывода для стандартных файлов;

string.h, stdlib.h— функции для работы со строками;

alloc.h, stdlib.h - функции для выделения и освобождения памяти;

conio. h - функции для работы с терминалом в текстовом режиме;

graphics.h - функции для работы с графикой.

и др.

Замечание: директива не заканчивается точкой с запятой.

Третья строка является заголовком функции с именем main. Программа состоит из единственной функции с названием main(). Функция – фрагмент кода программы, выполняющий логически законченное действие.

Круглые скобки, идущие вслед за именем main, показывают, что main() есть имя функции. Если их нет, компилятор не сможет отличить имя переменной или другого элемента программы от имени функции. Слово int, предваряющее имя функции, указывает на то, что эта функция возвращает значение типа int (то есть результатом ее работы будет целое число), void говорит о том, что функция main не принимает никаких аргументов. Эти детали будут подробно рассмотрены далее. Такая запись определения функции main соответствует стандарту ISO/ANSI. До появления этого стандарта void опускалось, еще ранее использовалась запись void main().

Программа на языке С начинается с выполнения функции main. И первым исполняемым оператором становится первый оператор функции main(). Программа может состоять из множества функций, классов и прочих элементов, но при ее запуске управление всегда передается функции main(). Если в программе нет такой функции, то при попытке ее запустить будет выдано сообщение об ошибке.

Строка 4. Тело функции заключено в фигурные скобки. Они обязательны. В рассмотренном примере тело функции состоит только из двух операторов – printf и return. Первые две строки не входят в тело функции. Тело любой функции - это заключенная в фигурные скобки после­довательность описаний, определений и операторов. Каждое описа­ние, определение или оператор заканчивается символом "точка с запятой".

Строка 5. В теле функции main явных описаний констант и\или переменных нет, а есть оператор

printf( "\n This is my first program!"); //вызов функции printf

Это оператор задает действие по выводу фразы, заключенной в кавычки на экран.

Отметим, что обратная косая черта ‘\’ позволяет не только записывать символы, не имеющего графического изображения и некоторые другие, но и выводить символьные константы, явно задавая их коды в восьмеричном или шестнадцатеричном виде. Последовательность литер, начинающаяся с символа ‘\’ называют esc-последовательностями. Их допустимые значения приведены в таблице 1.

Таблица 1. Значения esc-последовательностей

Изображение

Смысл

\a

Звуковой сигнал

\b

Возврат на шаг (забой)

\n

Перевод строки (новая строка)

\r

Возврат каретки

\t

Табуляция горизонтальная

\\

Обратная косая черта (\)

\’

Апостроф (‘)

\”

Двойная кавычка (“)

\?

Вопросительный знак

\000

Восьмеричный код символа (000 - любые восьмеричные символы)

\xhh

Шестнадцатеричный код символа (hh – любые шестнадцатеричные символы)

Строка 6. Оператор return 0 – оператор возврата является завершающим оператором рассматриваемой программы.