Лекции (1171139), страница 11

Файл №1171139 Лекции (Лекции) 11 страницаЛекции (1171139) страница 112020-04-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 11)

Значение возвращается в виде смещения в байтах относительноначала файла. Значение, возвращаемое функцией ftell, в дальнейшем можноиспользовать при вызове функции fseek. Ftell возвращает положение указателятекущей позиции при успешном завершении.При ошибке возвращается значение.long int ftell( FILE *stream);fseek – устанавливает адресный указатель файла, соответствующий потокуstream, в новую позицию, которая расположена по смещениюoffset относительно места в файле, определенного параметромfromtwhere. Параметр fromtwhere может иметь одно из трех значений 0,1 или 2, которые представлены тремя символическими константами, определеннымив файле stdio.h, следующим образом:SEEK_SET(0) – начало файла, SEEK_CUR(1) – позиция текущего указателя файла,SEEK_END(2) – конец файла(EOF); Функция fseek возвращает значение 0, еслиуказатель файла успешно перенесен, и ненулевое значение в случае неудачногозавершения.int fseek(FILE *stream, long int offset, int fromwhere);fgetpos – сохраняет позицию указателя файла, связанного с потоком stream, вместе, указываемом параметром pos.

При успешном завершении fgetpos возвращает0.int fgetpos(FILE *stream, fpos_t *pos);Здесь и далее fpos_t - предварительно объявленный тип typedef long fpos_t.fsetpos - устанавливает указатель текущей позиции файла, связанного с потокомstreamвновуюпозицию,котораяопределяетсязначением,получаемымпредшествующим вызовом функции fgetpos. При успешном завершении fsetposвозвращает 0.Int fsetpos( FILE *stream, const fpos_t *pos);fgetc – получает символ из потока stream.int fgetc(FILE *stream);fgetchar – получает символ из потока stdin.int fgetchar( void );fgets – получает строку s длиной не более n символов из потокаstream.char *fgets(char *s, int n, FILE *stream);fputc – выводит символ с в поток stream.int fput(int c, FILE *stream);fputchar- выводит символ c в поток stdout.int fputchar(int c);fputs – выводит строку символов string в поток stream.int fputs(char *string, FILE *stream);gets – получает строку символов s из потока stdin.char *gets(char *s);getc – выводит из потока stream символ этого потока.int getc(FILE *stream);getchar – выводит символ из потока stdin.int getchar( void );putc – выводит символ c в поток stream.int putc(int c, FILE *stream);putchar – выводит символ с в поток stdout.int putchar(int c);puts – выводит строку s в поток stdout.int puts(const char *s);37putw – помещает в поток stream целое значение w.int putw(int w, FILE *stream);getw – вводит из потока stream целое число.int getw(FILE *stream);fread – считывает n элементов данных длиной size из потока streamпо адресу ptr.size_t fread(void *ptr, size_t size, size_t n, FILE *stream );Здесь и далее size_t – предварительно объявленный в библиотекетип typedef usigned size_t.fwrite – записывает n элементов данных длиной size из ptr и потокstream.Size_t fwrite( void *ptr, size_t size, size_t n, FILE *stream);Функции форматированного ввода-выводаprintf – производит форматированный вывод в stdout.int printf(const char *format [,argument,…]);scanf – выполняет форматированный вывод из потока stdin.int scanf(const char *format [,adress,…]);fprintf – посылает форматированный вывод в поток stream.int fprintf(FILE *stream, const char *format [,argument,…]);fscanf – выполняет форматированный ввод из потока stream.int fscanf(FILE *stream, const char *format [,adress,…]);sprintf – производит форматированный вывод в сстроку buffer.int sprintf(char *buffer, const char *format [,argument,…]);sscanf – выполняет форматированный ввод из строки buffer.Int sscanf(const char *buffer, const char *format [,adress,…]);Функции ввода-вывода на экран(conio.h)cprintf – осуществляет форматированный вывод на экран.int cprintf(const char *format [,argument,…]);Файлы и их назначениеЗаголовочный файлassert.hctype.herrno.hfloat.hlimits.hlocale.hmatch.hsetjmp.hsignal.hstdarg.hstddef.hstdio.hstdlib.hstring.htime.hНазначениеДиагностика программПреобразование и проверка символовПроверка ошибокРабота с числами с плавающей точкойОпределение размеров целочисленных типовПоддержка интернациональной средыМатематическая библиотекаВозможность нелокальных переходовОбработка сигналовПоддержка функций с неопределенным числом параметровРазноеБиблиотека стандартного ввода-выводаФункции общего назначенияФункции работы со строками символовФункции работы с датами и временемgetch – читает один символ с консоли без вывода его на экран.int getch(void);getche – cчитывает один символ с консоли и отображает его в текущем текстовомокне экрана.int getche( void );putch – выводит символ на экран.int putch(int c);Каждая библиотечная функция , определенная стандартом языка С, имеетпрототип в соответствующем заголовочном файле.

В соответствие со стандартом ANSIязыка С должно быть 15 следующих заголовочных файлов.На самом деле каждый изкомпиляторов содержит , как правило больше заголовочных файлов, например –38библиотеку функций работы с графическим экраном graphics.h и библиотеку функций дляработы с текстовым экраном conio.h.ЗАДАНИЯ1. Составьте программу, которая распечатывает последние n строк файла ввода.2. Напишите программу, которая читает 2 файла и печатает их вперемежку: одна строка изпервого файла, другая - из второго. Придумайте, как поступить, если файлы содержатразное число строк.3.

Дан текстовый файл f. Найти и pаспечатать самую длинную стpоку этого файла.4.Пусть имеется файл, содеpжащий пpогpамму на Си. Напишите пpогpамму, удаляющуюиз текста пpогpаммы на С комментаpии.ЗАДАНИЯ НА ДОМ1. Пусть файл содержит записи о сотрудниках некоторого учреждения. Каждая записьвключает порядковый номер записи, фамилию, имя сотрудника, его номер телефона ивозраст:1 Иванов Иван 1234567 252 Петров Петр 2345678 27…Напишите программу, которая выводит меню с доступными операциями:1 – добавить новую запись (при добавлении новой записи проверять нет ли ужетакой записи в файле)2 – редактировать запись (вводится номер записи)3 – искать запись по фамилии (если имеются однофамильцы, выводить все записис одинаковыми фамилиями)4 – удалить запись по порядковому номеру5 – завершить работу программыКаждую из операций оформить в виде отдельной функции.2.

Пусть файл содержит информацию о наличии книг в магазине. Каждая запись включаетномер ISBN книги, автора, название, количество книг:9666965348 Стругацкие Град обреченный 2585845908914 Керниган, Ритчи Язык программирования C 129…Напишите программу, которая выводит меню с доступными операциями:12345–––––добавить новую книгу (при добавлении проверять нет ли уже такой книги)редактировать запись (вводится номер ISBN)поиск книг одного автора (вывести все книги по введенной фамилии автора)изменить количество книг (по введенному номеру ISBN)завершить работу программыКаждую из операций оформить в виде отдельной функцииПрограмма должна иметь следующую структуру:Lab1.c – файл, содержащий функцию mainLab1_func.c – файл, содержащий реализацию функций программы.Lab1.h – заголовочный файл, содержащий глобальные переменные и заголовки функций.Варианты:1.

задание 1 реализовать функции 1,3,52. задание 1 реализовать функции 2,4,53. задание 2 реализовать функции 1,3,54. задание 2 реализовать функции 2,4,539МассивыМассив в Си — это набор элементов одного типа, обратиться к которым можно по индексу.Элементы массивов в C расположены друг за другом в памяти компьютера. Двумерные массивы Си — этопрямоугольная таблица чисел. Двумерный массив C состоит из рядов и столбцов. Первый индексдвумерного массива C — это число рядов, а второй индекс — это число столбцов. Описание массива в Сисостоит из имени базового типа, названия массива и его размера, который указывается в квадратныхскобках.

Размер массива обязательно должен быть целочисленной константой или константнымвыражением. Примеры:int a[10];char c[256];double d[1000];В первой строке описан массив целых чисел из 10 элементов. Подчеркнем, что нумерация в Си всегданачинается с нуля, так что индексы элементов массива изменяются в пределах от 0 до 9. Во второй строкеописан массив символов из 256 элементов (индексы в пределах 0...255), в третьей - массив вещественныхчисел из 1000 элементов (индексы в пределах 0...999). Для доступа к элементу массива указывается имямассива и индекс элемента в квадратных скобках, например:a[10], c[255], d[123]Объявление массива сводится к указанию типа его элементов и количества элементов по каждомуизмерению:#define Nmax 50/*директива define указывает процессору на то, что встречающееся в коде обозначение Nmax следуетзаменить на значение 50 */char a1[20],a2[2][80];int b1[25],b2[Nmax];По такому объявлению компилятор будет знать, сколько места в оперативной памяти понадобится дляхранения такого массива.

Для глобальных массивов место в памяти будет выделено в момент запускапрограммы, а для локальных – в момент вызова соответствующей функции.Объявление массива можно совместить с его инициализацией, т.е. с присвоением начальных значений всемэлементами массива или только нескольким первым элементам:char a[7]="Привет";char b[7]={'П','р','и','в','е','т',0x0};char c[]="Привет";float d[10]={1.,2.,3.,4.};int q[2][3]={{1,2,3},{4,5,6}};Обратите внимание на инициализацию символьных массивов a, b и c. В первом случае значенияэлементов массива совпадают с символами указанной строковой константы. Хотя значащих символов там 6,не следует забывать и о невидимом признаке конца строки – байте с нулевым значением. В случаеинициализации массива b каждый его элемент задан символьной константой, не забыть и признак концастроки. Самый удобный способ использован при инициализации массива c – вместо того, чтобы указыватьколичество элементов, здесь заданы пустые скобки.

Компилятор по заданному значению текстовойконстанты сам определит нужное количество байтов. Это позволяет избежать ненужных ошибок приподсчете количества символов в достаточно длинных строках. При инициализации массива d вместо десятизначений заданы только четыре. Это означает, что указанные величины будут присвоены только первымчетырем элементам. Остальные элементы не инициализированы. В случае если d является глобальныммассивом, значения этих элементов будут равны 0 (память, выделяемая глобальным данным,предварительно чистится).

Если массив d локализован в какой-то функции, то значения его элементов,начиная с d[4], предсказать невозможно – там будет находиться "мусор", которая при повторных вызовахфункции может оказаться разной.Инициализация двумерных массивов выглядит более естественно, если значения элементов строкрасполагать друг под другом (так как это сделано в инициализации массива q).Оператор sizeof возвращает размер всего массива в байтах, а не в элементах массива.

В данном примере:sizeof(a) = 10*sizeof(int) = 40,sizeof(c) = 256*sizeof(char) = 256,sizeof(d) = 1000*sizeof(double) = 800040ЗАДАНИЯ1. Написать программу поиска минимального элемента массива из n элементов.2.Дана последовательность из 20 целых чисел. Определить количество инверсий в этойпоследовательности (то есть пар таких элементов, в которых большее число находитсяслева от меньшего: x[i] > x[j] при i<j).3.

Характеристики

Тип файла
PDF-файл
Размер
1,27 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее