Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014_2015 / lab2_types.pptx
Скачиваний:
12
Добавлен:
27.12.2015
Размер:
9.57 Mб
Скачать

Массивы

Для определения массива необходимо указать типы значений, кото- рые он содержит, и максимальное количество элементов, которое может быть в него записано. Для того чтобы создать массив,

содержащий, например, 31 целое число, надо написать определение: int temps[31];

При определении массива одновременно определяются и его отдельные элементы.

Нумерация- с нуля К первому элементу массива

temps обращаются как к temps[0], ко второму — как к temps[1] и т.д.

индекс массива

Структурирование обработки данныхВозможности выбора

Выбор из 2х элементов

Множественный выбор

Повторять одни и те же действия - цикл

Возможности выбора:

eof, feof – конец файла

int eof(<дескриптор файла>) - ф-я для проверки конца файла (io.h)

int feof(<дескриптор файла>) - макрос для проверки конца файла (stdio.h)

Int err;

FILE *myfile;

… // открытие + обращение к файлу err=eof(myfile);

… //проверяемошибки,приихотсутствииработаемдальше Значения макроса feof:

0 послеобращениякфайлу–всевпорядке,работаемсфайлом Не 0 после обращения к файлу - достигнут конец файла Значения ф-и eof:

0послеобращениякфайлу–всевпорядке,работаемсфайлом 1 после обращения к файлу - достигнут конец файла -1 после обращения к файлу – ошибка обращения к файлу, переменной errno присваивается значение

EBADF – bad file number

Ошибки открытия файлов и ввода вывода

Условия выхода из цикла или завершения программы

Всеф-ибиблиотекввода-выводавозвращаютсообщенияобошибках!!!

int err, num;

 

FILE *myfile;

 

. . .

 

main()

 

{

 

. . .

 

myfile=fopen(“<name>”,”<type>”);

 

if (myfile!=NULL)// проверить, что файл открыт

{

 

//остальное тело программы

 

err=fscanf(myfile,”%d”,&num);

 

if(err!=0) . . . // ошибка чтения!!!!

 

else . . . // работаем дальше

 

}

 

return 0;

 

} !!! Не забывайте сбрасывать буфер

fflush(myfile);

Типичные ошибки программирования

Отсутствует директива #include, подключающая необходимую библиотеку

ввода-вывода. На этапе компиляции ошибка приводит к сообщениям вида “Error: Undefined symbol printf, scanf”.

Неправильно прописаны знаки «””» и «< >» в директиве #include. На этапе компи-

ляции ошибка приводит к сообщениям вида “Error: Undefined symbol printf, scanf”.Неправильно прописаны пути в среде компилятора. На этапе компиляции

ошибка приводит к сообщениям вида “Error: Undefined symbol printf, scanf”.Отсутствует точка с запятой в конце оператора. Последствия этой ошибки

могут быть разнообразны, но весьма часто это сообщения вида “Error: Statement missing ;”, “Error: Declaration syntax”, “Error: Undefined symbol …”.Использование операции >> при работе с потоком вывода cout, и операции

<< при работе с потоком ввода cin. Сообщение – “Error: operator not implemented …”.

Несоответствие символа форматного преобразования (%d, %f и т.д.) типу

переменной (int, float, и т.д.) в операторах консольного ввода-вывода printf и scanf. Ошибка не распознается компилятором, однако приводит к неправильной работе соответствующих функций.

Используемая в программе переменная не объявлена. Такая ошибка

приводит к сообщению “Error: Undefined symbol …”.

Нарушена парность скобок в записи сложного алгебраического выражения.

Внимательно относитесь к типам функций!!!!

Распространенной ошибкой является использование

fgetc, getc или getchar для присваивания результата переменной типа char перед

сравнением его с EOF.

Правильно

Ошибка

char c;

int c;

while ((c=getchar())!= EOF)

while ((c = getchar()) != EOF)

{

{

putchar(c);

putchar(c);

}

}

printf(“max=%d“, max);

2 варианта – if … else и (или) условная операция Много вариантов - вложенные условные операторы или

Оператор switch Форма записи:

(выражение)

printf(“\n please input number”); scanf(&rez);

}

if(i==12) printf(“wrong choose”); else printf(“true choose”);

. . .

Соседние файлы в папке 2014_2015