- •Т.Э. Шульга программирование.
- •Глава 1. Основы программирования на языке высокого уровня 6
- •Глава 2. Динамические структуры данных 40
- •Глава 3. Основы объектно-ориентированного программирования 53
- •Введение
- •Глава 1. Основы программирования на языке высокого уровня
- •Void main()
- •Задания
- •1.2. Переменные. Основные типы данных
- •Ввод – вывод значений переменных
- •Форматирование данных при обменах с потоками ввода-вывода
- •Void main()
- •Void main()
- •Преобразование типов
- •Задание 1. Описание переменных и преобразование типов
- •Задание 2. Форматирование вывода
- •1.3. Основные операции
- •Void main ()
- •Задания
- •1.4. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 1. Обработка введенного символа
- •Задание 2. Вычисление значения функции
- •Задание 3. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 4. Mультиветвление
- •1.5. Конструкции цикла и передачи управления
- •Void main()
- •Задание 1. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 2. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 3. Одномерные массивы
- •Void main ()
- •Int a[100],n,max,imax;
- •Задание 4. Вложенные циклы
- •Void main ()
- •Задание 5. Двумерные массивы
- •Void main ()
- •Задание 6. Посимвольная обработка строк
- •Void main()
- •Задание 7. Сортировка массива
- •Void main ()
- •1.6.Функции
- •Int oct (int a)// определение функции
- •Void main()
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Задание 1. Определение и вызов функций
- •Задание 2. Рекурсивные функции
- •Задание 3. Использование библиотечных функций string.H
- •Void main()
- •Задание 4. Использование библиотечных функций stdio.H
- •Void main ()
- •Глава 2. Динамические структуры данных
- •Int year;
- •Int children;
- •Задание 1. Структуры
- •Int year;
- •Int month;
- •Int visokos(int year)
- •Vivod (date d)
- •Int day_number(date d)
- •Vivod(mas[I]);
- •Vivod (min(mas,n));
- •Задание 2. Динамический список
- •Int mark;
- •Void vvod ()
- •Void vivod()
- •If (begin)
- •Void vivod_f()
- •If (begin)
- •Void add()
- •Void udol () //
- •If (begin)
- •Void del()
- •Void main ()
- •Задание 3. Использование стеков и очередей
- •Глава 3. Основы объектно-ориентированного программирования
- •Void empty();
- •If (len) delete []s;
- •Void cStr::empty()
- •Задание 1 . Описание простейшего класса
- •Задание 2 . Класс string
- •Void main()
- •Void main ()
- •Задание 3. Класс fstream
- •Задание 4. Наследование
- •Список литературы
Задание 4. Использование библиотечных функций stdio.H
Пример. Дан текстовый файл, строки которого содержат не более m (m<=20) символов. Считать строки и записать их в файл result.txt в порядке считывания, причем каждая строка должна быть «перевернута».
#include <iostream.h>
#include <stdio.h>
Void main ()
{
char filename[255];
cout<<"Введите имя файла ";
cin>>filename;
FILE *fp=fopen(filename,"r"); //открываем файл для чтения
if (fp!=NULL) // Если файл успешно открыт
{
FILE * fp1=fopen("result.txt","w");//Открываем для файл
// для записи
char s[20];// определяем массив для хранения
//считанной строки
while(fgets(s,21,fp)) //Цикл считывания строк
{
int l=strlen(s);
if (s[l-1]!='\n') fputc(s[l-1],fp1);
/*цикл записи символов строки в обратном порядке*/
for (int j=l-2; j>=0; j--) fputc(s[j],fp1); //
fputc('\n',fp1);//запись символа новой строки
}
fclose(fp);
fclose (fp1);
cout<<"Файл записан";
}
else cout<<"Не существует такого файла!" ;
}
Заметим, что запись считанной строки s в файл происходит, начиная с символа с индексом strlen(s)‑2, так как последний символ строки это ноль-символ, а предпоследний - символ новой строки, который записывается в строку при ее чтении из файла функций fgets(). Однако исключение может составлять последняя строка файла, после которой в исходном файле может не стоять символа новой строки. Именно для последней строки в цикле введена проверка условия.
-
Дан текстовый фал, содержащий целые числа, разделенные пробелами. Определить является ли последовательность чисел, находящихся в файле, упорядоченной. В новый файл вывести сообщение о том, являются ли последовательность чисел в данном файле упорядоченной по убыванию или по возрастанию либо не упорядоченной, а также - среднее арифметическое всех чисел.
-
Дан файл, содержащий несколько строк. В новый файл переписать строки данного, вставляя символ ‘!’ после каждой строки, содержащей не более n символов. Если строка заканчивается знаком препинания заменить его на символ ‘!’.
-
Дан файл, содержащий несколько строк. Найти максимальную длину строки и вывести в новый файл все строки, имеющую такую длину.
-
Дан файл, содержащий несколько строк (причем строки не содержат пробелов). В новый файл записать строки данного, вставляя пробелы так, чтобы каждая строка имела длину 80 символов (пробелы должны быть расставлены равномерно).
-
Дан текстовый файл. Осуществить посимвольную чередующуюся печать файла в прямом и обратном направлении в новый файл. Например, если в файле было слово ЛУНА, то в результирующем файле должно быть слов ЛАУННУАЛ.
-
В исходном файле находится текст программы на языке С++. Создать файл, в который переписать содержимое исходного файла без однострочных комментариев.
-
Подсчитать количество пустых строк в текстовом файле. Вывести номера этих строк в новый файл.
-
Дан текстовый файл. Переписать его содержимое в новый файл, разбив строки таким образом, чтобы каждая строка либо оканчивалась точкой, либо содержала 40 литер, если среди них нет точки.
-
В текстовом файле подсчитать количество строк, которые начинаются и оканчиваются одной и той же буквой, вывести эти строки их количество в новый файл.
-
Дано два текстовых файла. Сравнить их содержимое и в новый файл записать либо номер первой строки, в которой они различаются, либо сообщение о том, что файлы идентичны.
-
Если в текущем каталоге имеется файл, tabl_umn.txt, то вывести на экран его содержимое. Если нет, то создать такой файл и записать туда таблицу умножения для чисел от 2 до 9.
-
Дан текстовый файл. Переписать его содержимое в новый файл, разбив строки таким образом, чтобы каждая строка имела n символов. Если в последней строке меньше, чем n символов, дополнить ее символами ‘!’.