Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Struct ELEM st; // структура↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
struct ELEM sm[10]; // массив структур struct ELEM *sp; // указатель на структуру struct ELEM *spm[10]; // массив указателей на структуры Для обращения к элементу структуры исполняется операция «.», например: st.num = 2; sm[3].sum = 3.3; scanf («%s», &sp.name); Для обращения к элементу структуры, адресуемой указателем, используется операция «->», например: sp->num = 2; spm[3]->sum = 3.3; spm->name = ’R’; 3. Методические указания. При написании программы следует использовать статические массивы структур или указателей на структуры. Размерности массивов – 3-4. Для динамического выделения памяти используйте функцию malloc(). Для определения размера структуры в байтах удобно использовать операцию sizeof(), возвращающую целую константу: struct ELEM *sp; sp = malloc(sizeof(structELEM)); При выполнении п. 4.2. потребуется выполнять операцию перестановки элементов массива. Для этого необходимо описать дополнительный указатель на структуру. Можно также использовать вспомогательный массив указателей. Ввод данных выполнить с помощью функций scanf(). 4. Порядок выполнения работы 4.1. Написать программу, работающую с базой данных в виде массива структур и выполняющую последовательный ввод данных в массив и последующую распечатку его содержимого. Состав структуры приведен в табл. 5.1. Типы данных выбрать самостоятельно. 4.2. Переписать программу п.4.1, используя массив указателей на структуры и динамическое выделение памяти. Выполнить сортировку массива. Способ сортировки массива приведен в табл. 5.1.
Таблица 5.1
5. Содержание отчета 5.1. Задание. 5.2. Листинги программ по пп. 4.1 и 4.2. 5.3. Тестовый пример.
6. Контрольные вопросы 6.1. Правила описания структур. 6.2. Операции, используемые для выделения элементов структур. 6.3. Выделение элементов структур, адресуемых указателем. 6.4. Назначение функции malloc(). 6.5. Отличие calloc() от malloc(). 6.6. Правила инициализации структур при описании. 6.7. Особенности выделения памяти под структуры. 6.8. Назначение функций realloc() и free(). 6.9. Как передать структуру в функцию?
Лабораторная работа № 6.
ИНТЕРФЕЙС С ОПЕРАЦИОННОЙ СИСТЕМОЙ. ФАЙЛОВЫЕ ОПЕРАЦИИ
1. Цель работы. Ознакомиться со стандартными функциями языка СИ, используемыми для организации доступа к файлам. 2. Краткие теоретические сведения. Для каждого из одновременно открытых файлов в программе на языке СИ должны быть описаны указатели на структуру FILE, содержащую информацию о соответствующем файле. Эта структура заполняется операционной системой при открытии файла и используется затем при вызове функций, выполняющих операции чтения - записи. Типовая последовательность действий при файловых операциях может быть следующей: FILE *fp; ... fp=fopen(……); // открыли файл ... fprintf(fp,……); // запись в файл fputs(fp,……); // аналогично ... Fclose(fp); // закрыли файл После закрытия файла указатель fp может быть использован для открытия другого файла. Примеры использования стандартных функций, оперирующих с файлами, приведены ниже. FILE *fp; int x; char buf[30], b; fp=fopen(«ABC.TXT», «rt»); //открыли файл для чтения // fp=NULL – ошибка fscanf(fp, «%d», &x); //считали значение переменной х n=fgets(buf, 30, fp); // считали строку из файла // n=0 – конец файла b=getc(fp); // считали символ //b=EOF – конец файла fprintf(fp, «x=%d», x); // записали значение переменной Fputs(buf, fp); // записали строку Putc(b, fp); // записали символ Fclose(fp); // закрыли файл При написании программ на языке СИ часто используют передачу параметров в программу непосредственно при ее запуске, например: Name input.txt output.txt где name - имя исполняемого файла задачи (name.exe). При этом функция main() должна быть оформлена в виде: main(int argc,char* argv[]) { … При запуске программы с командной строкой параметр argc получает значение, равное количеству параметров в строке (включая имя задачи), а элементы массива argv – адреса строк - параметров. Например, для вышеприведенного примера argс = 3; argv[0] = "name"; argv[1] = "input.txt"; argv[2] = "output.txt"; 3. Методические указания В лабораторной работе требуется написать две программы для обработки текстовых файлов. Одна из них выполняет построчную, другая посимвольную обработку. Ввод параметров должен быть организован в командной строке запуска программы. Исходный файл должен быть создан с помощью любого текстового редактора. При обработке текста рекомендуется использовать функции из стандартной библиотеки СИ для работы со строками, преобразования и анализа символов. 4. Порядок выполнения работы 4.1. Написать программу, обрабатывающую текстовый файл и записывающую обработанные данные в файл с таким же именем, но с другим типом (табл. 6.1) 4.2. Написать программу, выполняющую посимвольную обработку текстового файла (табл. 6.2.). Ввод параметров организовать в командной строке запуска программы.
Таблица 6.1
Таблица 6.2
5. Содержание отчета 5.1. Задание. 5.2. Листинги программ по пп.4.1 и 4.2. 5.3. Тестовый пример.
6. Контрольные вопросы
6.1. Назначение указателя FILE*. 6.2. Стандартные функции открытия/закрытия файлов. 6.3. Стандартные функции для построчной обработки файлов. 6.4. Стандартные функции для посимвольной обработки файлов. 6.5. Стандартные функции работы со строками. 6.6. Буферизованный и небуферизованный ввод/вывод. 6.7. Передача параметров в программу при ее запуске. 6.8. Проверка корректности выполнения операций файлового ввода-вывода. 6.9. Режимы открытия файлов. 6.10. Перенаправление стандартного ввода/вывода. ЛИТЕРАТУРА 1. В. Керниган, Я. Ритчи. Язык программирования Си. М.: Мир, 1988. 2. И. Уэйт, С. Прата, Д. Мартин. Язык Си. Руководство для начинающих. М.: Мир, 1988. 3. Н. Джехани. Программирование на языке Си. М.: Радио и связь, 1968. 4. Р. Берри, Б. Ликинз. Язык Си. Введение для программистов. М.: Финансы и статистика, 1988. 5. М. Дансмур, Г. Дейвис. ОС UNIX и программирование на языке Си. М.: Радио и связь, 1989. 6. М. Болски. Язык программирования Си: Справочник. М.: Радио и связь, 1988. 7. Л.М. Романовская и др. Программирование в среде СИ для ПЭВМ ЕС. М.: Финансы и статистика, 1992. 8. В. В. Подбельский, С. С. Фомин. Программирование на языке Си. М: Финансы и статистика, 2000.
ПРОГРАММИРОВАНИЕ, часть 1 Методическое руководство
Редактор Технический редактор Лицензия № _________ от __.__.__. Подписано в печать ___.___.___. Отпечатано в типографии Новосибирского государственного технического университета
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 467; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.144.109 (0.011 с.) |