- •1 Этапы решения задач. Виды исх. Данных.
- •2 Этапы решения задач. Класс-ция данных по структурному признаку.
- •3 Формальное решение задачи. Модель, моделирование, алгаритм. Пример.
- •4 Алгоритм и его свойства. Понятие алгоритмизазии. Формы представления алгоритмов.
- •5 Визуальные алгоритмы и правила их проектирования. Блок-схемы алгоритмов и основн. Правила их оформления.
- •6. Алгоритмизация решения задачи и её результат. Основные блоки виз. А. Пример.
- •7 Декомпозиция, дедуктивный и индуктивный методы построения алгоритмов. Метод структурной алгоритмизации.
- •8. Алгоритм и алгоритмизация. Класс-ция а по характеру связей между блоками.
- •9 Линейные и разветвляющиеся алгоритмы.
- •10 Линейные и циклические алгоритмы.
- •11 Типы задач инженерной практики. Классификация алгебраических уравнений.
- •12 Прямые и итерационные методы решения нелинейных уравнений. Метод половинного деления.
- •13. Прямые и итерационные методы решения нелинейных уравнений. Метод ложного положения.
- •14. Прямые и итерационные методы решения нелинейных уравнений. Метод Ньютона
- •16. Решение обыкновенных дифуров. Задача Коши.
- •18 Одношаговые методы решения оду. Мод. М-д Эйлера.
- •19 Одношаговые методы решения оду. Р-к 4ого порядка.
- •20 Общая характеристика одношаговых методов решения оду. Р-к для диф. Ур.
- •21 Методы прогноза и коррекции. М-д Милна.
- •22 Методы прогноза и коррекции. Метод Адамса-Башфорта
- •24 Методы прогноза и коррекции. Общая хар-ка метода п и к
- •26. Методы решения краевых задач. Конечно - разностные методы. Примеры расчёта
- •27.Выбор алгоритмов решения оду
- •28. Алгоритмы сортировки данных. Сортировка методом простого перебора. Пример.
- •29.Алгоритмы сортировка. Всплытающий пузырь
- •30. Оптимизация. Основы теории. Проектные параметры. Целевая функция.
- •31.Оптимизация. Поиск min и max. Просранство проектирования. Ограничения — равенства и ограничения неравенства. Локальный и глобальный оптимум.
- •33.Метод одномерного поиска. Начальный и суженный интервалы неопред.
- •34. Методы одномерного поиска. Общий поиск.
- •35. Метод одномерного поиска. Деление интервала пополам
- •36. Метод одномерного поиска. Метод Дихотомии
- •37. Методы одномерного поиска. Золотого сечения
- •38. Этапы процесса решения задач на компьютере. Основные категории специалистов, занятых разработкой программ, и схема их взаимодействия
- •39.Жизненый жикл программного продукта
- •40. Осн. Принципы структурного программирования.
- •41. Осн. Компоненты и понятия алгоритмических языков.
- •42. Типы данных в языке си. Форматный вывод данных.
- •43. Арифметические и логические операции языка си.
- •44. Операторы ввода и вывода данных языка си.
- •45. Операторы условного и безусловного перехода языка си.
- •46. Операторы getchar, putchar и gets языка си.
- •Getchar – чтение символа из стандартного потока ввода.
- •Putchar – вывод символа в стандартный поток вывода.
- •Gets – чтение строки из стандартного потока ввода. Чтение строки производится пока не будет встречен символ «переход на новую строку», или не будет достигнут конец файла.
- •47. Структура программ языка си.
- •48. Одномерные и многомерные массивы в языке си.
- •49. Организация цикла с помощью оператора while.
- •50. Организация цикла с помощью оператора for.
- •51. Организация цикла с помощью оператора do-while.
- •52. Операторы множественного выбора и операторы break и continue языка си.
- •53. Операции открытия файла и считывание данных из файла в языке си.
- •54. Операции открытия файла и записи данных в файл языка си.
- •55. Локальные и глобальные переменные в языке си. Возвращение переменной из функции.
- •56. Понятие функции. Использование адресации для возвращения значения переменной из функции.
53. Операции открытия файла и считывание данных из файла в языке си.
#include
#include
void main( void )
{
FILE *file;
char* file_name = "file.txt";
char load_string[50] = "none";
file = fopen( file_name, "w" );
fputs( "string", file );
fclose( file );
file = fopen( file_name, "r" );
if( file != 0 )
{
fgets( load_string, 50 , file );
cout << "load_string = " << load_string << endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(file);
}
Сначала надо создать указатель на переменную типа FILE ( FILE* file; ). Открытие файла производится вызовом функции fopen ( file = fopen( file_name, "w" ); ) Первый параметр этой функции - имя файла, второй - указывает в каком режиме должен быть открыт файл. "w" - открыть для записи, "r" - открыть для чтения, "a" - дополнение файла( это наиболее используемые режимы, хотя есть и другие ). Запись и считывание данных из файла осуществляется следующими функциями : fputc, fputs, fgetc, fgets, fprintf, fscanf( описание этих функций смотрите в stdio.h). Закрытие файла осуществляется вызовом функции fclose ( fclose( file ); ). (см 54)
54. Операции открытия файла и записи данных в файл языка си.
Прежде чем читать или записывать информацию в файл, он должен быть открыт и тем самым связан с потоком. Это можно сделать с помощью библиотечной функции fopen( ). Она берет внешнее представление файла (например, c:\my_prog.txt) и связывает его с внутренним логическим именем, которое используется далее в программе. Логическое имя - это указатель на требуемый файл. Его необходимо определить; делается это, например, так:
FILE *fp;
Здесь FILE - имя типа, описанное в стандартном заголовочном файле stdio.h, fp - указатель на файл. Обращение к функции fopen( ) в программе осуществляется выражением:
fp = fopen(спецификация файла, "способ использования файла");
1. Функция putc( ) записывает символ в файл и имеет следующий прототип:
int putc(int с, FILE *fp);
Здесь fp - указатель на файл, возвращенный функцией fopen( ), с - символ для записи (переменная с имеет тип int, но используется только младший байт). При успешном завершении putc( ) возвращает записанный символ, в противном случае возвращается константа EOF. Она определена в файле stdio.h и имеет значение -1.
2. Функция getc( ) читает символ из файла и имеет следующий прототип:
int getc(FILE *fp);
Здесь fp - указатель на файл, возвращенный функцией fopen( ). Эта функция возвращает прочитанный символ. Соответствующее значение имеет тип int, но старший байт равен нулю. Если достигнут конец файла, то getc( ) возвращает значение ЕОF.
3. Функция feof( ) определяет конец файла при чтении двоичных данных и имеет следующий прототип:
int feof(FILE *fp);
Здесь fp - указатель на файл, возвращенный функцией fopen( ). При достижении конца файла возвращается ненулевое значение, в противном случае возвращается 0.
4. Функция fputs( ) записывает строку символов в файл. Она отличается от функции puts( ) только тем, что в качестве второго параметра должен быть записан указатель на переменную файлового типа.
Например:
fputs("Ехаmple", fp);
При возникновении ошибки возвращается значение EOF.
5. Функция fgets( ) читает строку символов из файла. Она отличается от функции gets( ) тем, что в качестве второго параметра должно быть указано максимальное число вводимых символов плюс единица, а в качестве третьего - указатель на переменную файлового типа. Строка считывается целиком, если ее длина не превышает указанного числа символов, в противном случае функция возвращает только заданное число символов.
Рассмотрим пример:
fgets(string, n, fp);
Функция возвращает указатель на строку string при успешном завершении и константу NULL в случае ошибки либо достижения конца файла.
6. Функция fprintf( ) выполняет те же действия, что и функция printf( ), но работает с файлом. Ее отличием является то, что в качестве первого параметра задается указатель на переменную файлового типа.
Например:
fprintf(fp, "%х",а);
7. Функция fscanf( ) выполняет те же действия, что и функция scanf(), но работает с файлом. Ее отличием является то, что в качестве первого параметра задается указатель на переменную файлового типа.
Например:
fscanf(fp, "%х", &a);
При достижении конца файла возвращается значение EOF.
8. Функция fseek( ) позволяет выполнять чтение и запись с произвольным доступом и имеет следующий прототип:
int fseek(FILE *fp, long count, int access);
Здесь fp - указатель на файл, возвращенный функцией fopen( ), count - номер байта относительно заданной начальной позиции, начиная с которого будет выполняться операция, access - способ задания начальной позиции.
Переменная access может принимать следующие значения:
0 - начальная позиция задана в начале файла; 1 - начальная позиция считается текущей; 2 - начальная позиция задана в конце файла.
При успешном завершении возвращается нуль, при ошибке - ненулевое значение.
9. Функция ferror( ) позволяет проверить правильность выполнения последней операции при работе с файлами. Имеет следующий прототип:
int ferror(FILE *fp);
В случае ошибки возвращается ненулевое значение, в противном случае возвращается нуль.
10. Функция remove( ) удаляет файл и имеет следующий прототип:
int remove(char *file_name);
Здесь file_name - указатель на строку со спецификацией файла. При успешном завершении возвращается нуль, в противном случае возвращается ненулевое значение.
11. Функция rewind( ) устанавливает указатель текущей позиции в начало файла и имеет следующий прототип:
void rewind(FILE *fp);
12. Функция fread( ) предназначена для чтения блоков данных из потока. Имеет прототип:
unsigned fread(void *ptr, unsigned size, unsigned n, FILE *fp);
Она читает n элементов данных, длиной size байт каждый, из заданного входного потока fp в блок, на который указывает указатель ptr. Общее число прочитанных байтов равно произведению n*size. При успешном завершении функция fread( ) возвращает число прочитанных элементов данных, при ошибке - 0.
13. Функция fwrite( ) предназначена для записи в файл блоков данных. Имеет прототип:
unsigned fwrite(void *ptr, unsigned size, unsigned n, FILE *fp);
Она добавляет n элементов данных, длиной size байт каждый, в заданный выходной файл fp. Данные записываются с позиции, на которую указывает указатель ptr. При успешном завершении операции функция fwrite( ) возвращает число записанных элементов данных, при ошибке - неверное число элементов данных.