Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ПВМ.doc
Скачиваний:
5094
Добавлен:
21.02.2016
Размер:
2.79 Mб
Скачать

Карта учебно-методической обеспеченности дисциплины Учебники, учебные пособия

Автор, наименование, год издания

Имеется в наличии (шт.)

В библиотеке

На кафедре

1

2

3

1. Дейтел Х, Дейтел П. Как программировать на С: Третье издание. Пер. с англ.- М.:Бином-Пресс, 2002. – 1168 с.

2. Уэйт М., Прата С., Мартин Д. Язык Си: Пер. с англ. – М.: Мир, 1988. – 511 с.

3. Керниган Б., Ритчи Д. и др. Язык программирования Си. Пер. с англ. – М.: Финансы и статистика, 1985. – 279 с.

4. Самарский А. А. Численные методы: Уч. пособие для вузов. – М.: Наука, 1989.

5. Турчак Л.И. Основы численных методов: Уч. пос. – М.: Наука, 1987.

6. Яблочкин Л.Б. и др. Основы численных методов. Уч. пос. – Тула: ТГУ, 2000.

7. Ракитин В. И., Первушин В.Е. Практическое руководство по методам вычислений с приложением программ для персональных компьютеров. Уч. пос. – М.: Высшая школа, 1998.

8. Дьяконов В. MATLAB: учебный курс. – СПб.: Питер, 2001.

9. Культин Н.Б. С/С++ в задачах и примерах. - СПб.: БХВ-Петербург, 2001. – 288 с.

10. Уинер Р. Язык Турбо Си: Пер. с англ. – М.: Мир, 1991. – 384 с.

11. Пол Ирэ. Объектно-ориентированное программирование с использованием С++: Пер.с англ. - К.: НИПФ «ДиаСофт Лтд.», 1995. – 480 с.

2

1

2

2

1

1

1

1

1

1

1

Электронный вариант

1

Электронный вариант

1

2

3

12. Краскевич В.Е. и др. Численные методы в инженерных исследованиях. – Киев: Вища школа, 1986.

13. Потемкин В.Г. Система инженерных и научных расчетов MATLAB. Уч.-справ.изд. Т. 1 и 2. – М.: ДИАЛОГ-МИФИ, 1999.

14. Плис А.И., Сливина Н.А. Лабораторный практикум по высшей математике. Уч. пос. – М.: Высшая школа, 1983.

1

1

1

Электронный вариант

Конспект лекционных занятий

Тема 1. Введение в программирование на Си. Структура программы. Директивы препроцессора. Типы данных.

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

Любая Си-программа состоит из одной или более «функций», являющихся основными модулями, из которых она собирается. Приведем пример программы на языке Си.

#include<stdio.h> /* директивы препроцессора */

main( ) /* имя функции с аргументами */

{ intm; /* оператор описания */

m=1; /* оператор присваивания */

printf(“%dнач. знач. \n“ ,m); } /* оператор вызова функции печати*/

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

Пример:

# define– определение макро;

# include– подстановка текста из внешнего файла.

# include<stdio.h> – для подстановки текста из файловstdio.h(стандартный ввод/вывод).

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

<math.h> – математическая функция.

Итак, программа состоит из одной или более функций, причем какая-то из них обязательно должна называться main( ). Описание функции состоит из заголовка и тела. Заголовок в свою очередь состоит из директив препроцессора типа #includeи т.д. и имени функции. Отличным признаком имени функции служат круглые скобки, причем аргумент, вообще говоря, может отсутствовать. Тело функции заключено в фигурные скобки {} и представляет собой набор операторов, каждой из которых оканчивается символом '';''.

Типы данных в языке Си.

В стандарте языка Си используется семь ключевых слов, указывающих на различные типы данных: int,long,short,unsigned,char,float,double. Первые четыре ключевых слова используется для представления целых, т.е. целых чисел без десятичной дробной части. Они могут появляться в программе по отдельности или в некоторых сочетаниях, как,например,unsignedshort. Словоcharпредназначено для указания на буквы и некоторые другие символы, такие, как #, $, % и &. Последние два ключевых слова используются для представления чисел с десятичной точкой.

Типы int, short, long. Данные этих типов являются «числами со знаком», т.е. допустимыми значениями переменных этих типов могут быть только числа – положительные, отрицательные и нуль. При описании данных необходимо ввести только тип, за которым должен следовать список имен переменных. Приведем пример описания:

int m1, m2; short k1, k2, k3; long l1, l2;

Использование сочетания ключевых слов, как, например, longintилиshortintявляется более длинной записью ключевых словlongиshort.

Целые константы. Согласно правилам языка Си, число без десятичной точки и без показателя степени рассматривается как целое. Например:

25 – 239 – целые; 25.0, 25Е2 – нецелые.

Константа типа longзаписывается так: 225

Инициализация переменных целого типа. Константы часто применяются при ''инициализации'' переменных. Это означает присвоение переменной некоторого значения перед началом обработки. Например:

k1 = 0;m2 = 1;

Можно инициализировать переменную в операторе описания. Например:

int m2 = 15; short k2, k3 = 0; long l1 = 25, l2 = 30;

Тип данных unsigned. Обычно этот тип служит модификатором одного из трех ранее описанных типов. Можно использовать варианты:unsignedint,unsignedlong. Целые переменные без знака описываются и инициализируются совершенно аналогично тому, как это делается в случае обычных целых переменных. Например:

unsigned int kol; unsigned short s = 2;

Тип данных char. Этот тип определяет целые числа без знака в диапазоне от 0 до 255. Обычно, такое целое размещается в одном байте памяти. В машине используется некоторый код для перевода чисел в символы и обратно. В большинстве компьютеров это кодASCII. Для описания символьной переменной применяется ключевое словоchar. Например:

char s2; char s2, s3; char sk = k;

В стандарте языка Си принято правило, согласно которому значения переменной и константы типа charмогут быть только одиночные символы.

Типы данных float и double. В программах вычислительного характера часто применяется числа с плавающей точкой. В языке Си такиеданные описываются типомfloat. Переменные с плавающей точкой описываются и инициализируются точно таким же образом, что и переменные целого типа. Например:

float s1, s2; double s; float pe = 7.52e-7;

Константы с плавающей точкой.

Общей формой записи константы с плавающей точкой является запись вида

-1.15Е+4; 2.52Е–3;

Разрешается опускать либо десятичную точку, либо экспоненциальную часть, но не одновременно. Кроме того, можно не писать дробную или целую часть, но не обе сразу. Приведем правильно записанные константы:

3.14159; .5; 4Е12; .7Е–4; 100.;

В процессе обработки константы с плавающей точкой рассматриваются в формате с удвоенной точностью. Предположим, например, что переменная PRтипаfloatполучает свое значение в результате выполнения оператораPR= 4.5*2.0.

В этом случая константы размещаются в памяти как данные типа double, т.е. для каждой из них (обычно) отводится 64 бит. Произведение вычисляется с двойной точностью, и только после этого производится усечение результата до размера, соответствующею типуfloat. Все это обеспечивает максимальную точность ваших вычислений. В языке Си имеется встроенная операцияsizeof, которая позволяет определить размер объектов в байтах. Например:

printf(''Данные типаdoubleзанимают %dбайт.\n'', sizeof (double));

Символьные строки. Символьная строка – это последовательность, состоящая из одного или более символов. В языке Си нет специального типа для описания строк. Строки можно предоставить в виде массива элементов типаchar. Символы в строке можно представить себе расположенными в соседних ячейках памяти – по одному символу в ячейке. Последним элементом массива является символ \0. Нуль – символ является признаком конца строки. Для определения длины строки числом символов используется функцияstrlen.

Использование директивы #defineимеет вид:

#defineсимволическое имя константы величина значения

Например:

#definePI3.14159

Директиву #defineможно использовать для определения символьных и строковых констант. Необходимо использовать знак ''апостроф'' в первом случае и кавычки во втором. Например:

# define NUL L ‘\0’ # define BL 1 ''Блок 1''

Использование функции printf( ) и scanf( ).

Общий вид функции printf( ):

printf(<строка формата>, <объект>, <объект>…);

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

#definePI3.14159

#include <math.h>

main ( )

{ float S, r;

printf(“введите радиус круга \n”);

scanf (“%f”, &r);

S=PI*r*r;

printf(“площадь круга = %f\n”,S); }

Таблица 1 – Спецификации формата

Спецификации формата

Тип выводимой информации

%d

Десятичное целое число

Один символ

%s

Строка символов

Число с плавающей точкой, экспоненциальная запись

%f

Число с плавающей точкой, десятичная запись

%g

Используется вместо записей % f или % е, если он короче

%u

Десятичное целое число без знака

Восьмеричное целое число без знака

Шестнадцатеричное целое число без знака

Применение функции scanf ( )

Общий вид функции scanf( ):

scanf(<cтрока формата>, <адрес>, <адрес>, …);

Функция scanf( ) использует практически тот же набор символов спецификаций преобразования, что и функцияprintf( ). Основные отличия в случае функцииscanf( ) следующие:

1. Отсутствует спецификация %g.

2. Спецификации %fи %eэквивалентны.

3. Для чтения целых чисел типа shortприменяется спецификация %h.

Заметим:

1. При записи адреса используется операция адреса (&) для передачи адресов переменных.

2. При вводе значения строковой переменной символ & не пишется.

Пример программы:

main( )

{ char name[30];

printf (“Введите имя автора”);

scanf (“%s”, name);

printf(“Автором программы является %s\n”,name); }

т.к. nameявляется массивом символов, значенияnameэто адрес самого массива. Поэтому перед именемnameне используется адресный оператор &.