- •Лабораторная работа №1 Программирование алгоритмов линейной и разветвляющейся структуры. Организация циклов в программе. Составление выражений
- •Задание №1
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Задание №2
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Лабораторная работа №2 Работа с массивами. Одномерные статические массивы. Многомерные динамические массивы
- •Задание №1
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Задание №2
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Задание №3
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Лабораторная работа №3 Работа со строками. Динамические одномерные массивы
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Лабораторная работа №4 Работа со структурами. Вложенные структуры. Массивы структур Задание 1
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Задание 2
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •6 Лабораторная работа №5 Программирование и использование функций
- •Void main()
- •Void main()
- •Лабораторная работа №6 Работа с файлами
- •Void main()
- •Void main()
- •Void main()
Лабораторная работа №6 Работа с файлами
Цель работы
Освоить функции для работы с файлами: чтения и записи символов, строк и байтов, управления указателем на текущую позицию в файле и др. познакомиться с различными типами файлов и режимами работы с ними.
Варианты заданий
Дан символьный файл f. Записать в файл g элементы файла f в обратном порядке.
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <stdio.h>
#include <string.h>
using namespace std;
Void main()
{
setlocale(LC_ALL,"Russian");
FILE *f;//указатель на файл
f= fopen("1.txt","w");//открытие файла для записи
char *a=new char[];//строка
puts("Введите строку: ");//диалог с пользователем
gets(a);
int len=strlen(a);//длина строки
for(int i=len;i>=0;i--)//запись в файл в обратном порядке
fputc(a[i],f);
fclose(f);//закрытие файла
puts("Выполнено!");
}
Дан символьный файл f. Получить файл g из файла f заменой всех его прописных букв одноименными строчными.
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <stdio.h>
#include <string.h>
using namespace std;
Void main()
{
setlocale(LC_ALL,"Russian");
FILE *f;//указатель на файл
f= fopen("1.txt","w");//открытие файла для записи
char *a=new char[];//строка
puts("Введите строку: ");//диалог с пользователем
gets(a);
int len=strlen(a);//длина строки
char *b=new char[];//вспом. массив
for (int i=0;i<len;i++){//конвертация
if (islower(a[i]))//для букв нижнего регистра
b[i]=toupper(a[i]);
if (isupper(a[i]))//для букв верхнего регистра
b[i]=tolower(a[i]);
if (a[i]==' ')//для пробела
b[i]=' ';
}
for(int i=0;i<len;i++)//запись в файл
fputc(b[i],f);
fclose(f);//закрытие файла
puts("Выполнено!");
}
Дан файл целых чисел f. Записать в файл g все четные элементы файла f, а в файл t - нечетные. Порядок следования чисел сохраняется.
Дан файл целых чисел f. Записать в файл g все положительные элементы файла f, а в файл t - отрицательные.
Дан символьный файл f, содержащий слова, разделенные пробелами. Записать в файл g самое длинное и самое короткое слова текста.
Дан символьный файл f, содержащий слова, разделенные пробелами. Подсчитать сколько слов в нем, состоящих из одной буквы, количество записать в файл g.
Дан файл целых чисел f. Записать в файл g количество элементов файла f, больших заданного числа x.
Дан файл целых чисел f. Записать в файл g все числа из него, являющиеся полными квадратами.
Даны два символьных файла f и g. Определить, совпадают ли элементы файла f с элементами файла g. Если нет, то получить номер первого элемента, в котором файлы отличаются между собой.
Дан файл целых чисел f. Определить, есть ли в нем повторяющиеся числа. Записать в файл g только различающиеся элементы файла f.
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
Void main()
{
FILE *f;//файл для чтения
f = fopen("1.txt","r");
FILE *g;//файл для записи
g = fopen("2.txt","wt");
int k=0;//счетчик
int m[10];//массив для работы
for(int i=0; i<10; i++)
fscanf(f,"%d", &m[i]);//запись из файла в массив
for(int i=0; i<10; i++){
for(int j=0; j<10; j++)
if(m[i]==m[j])//проверка
k++;
if (k==1) fprintf(g,"%d",m[i]);//если число встречается только один раз то записываем его в новый файл
k=0;//обнуляем счетчик
}
fclose(f);//закрытие файлов
fclose(g);
}