Задания для самостоятельного выполнения. 1. открыть файл, имя которого задается с клавиатуры

      Комментарии к записи Задания для самостоятельного выполнения. 1. открыть файл, имя которого задается с клавиатуры отключены

1. Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на экран количество байт в этом файле. Первую половину прочитанного файла записать в другой файл. Вывести полученный файл на экран.

2. Открыть файл, имя которого задается с клавиатуры. Записать в другой файл первые n байт этого файла, где n задается с клавиатуры (проверьте, что n находится в допустимых пределах). Вывести полученный файл на экран.

3. Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на экран количество слов в этом файле. Первую половину слов записать в другой файл. Вывести полученный файл на экран.

4. Открыть файл, имя которого задается с клавиатуры. Записать в другой файл первые n слов этого файла, где n задается с клавиатуры (проверьте, что n находится в допустимых пределах). Вывести полученный файл на экран.

5. Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на экран количество строк в этом файле. Первую половину строк записать в другой файл. Вывести полученный файл на экран.

6. Открыть файл, имя которого задается с клавиатуры. Записать в другой файл первые n строк этого файла, где n задается с клавиатуры (проверьте, что n находится в допустимых пределах). Вывести полученный файл на экран.

7. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, в который записать в обратном порядке строки исходного файла (инвертировать файл построчно).

8. Открыть файл, имя которого задается с клавиатуры. Создать строку, которая будет содержать набор символов содержащихся в файле (каждый символ должен входить в строку по одному разу). Записать полученную строку в другой файл.

9. Открыть файл, имя которого задается с клавиатуры. Переписать в другой файл только те строки, которые содержат заданную последовательность символов.

10. Открыть файл, имя которого задается с клавиатуры. Переписать в другой файл только те строки, которые содержат заданное слово.

11. Открыть файл, имя которого задается с клавиатуры. Переписать в новый файл только те слова, которые состоят из цифр.

12. Открыть файл, имя которого задается с клавиатуры. Найти сумму чисел, содержащихся в файле.

13. Открыть файл, имя которого задается с клавиатуры. Найти в этом файле максимальную по длине строку и переписать строки в новый файл, выровняв длину каждой строки по максимальной (добавив в конец каждой строки пробелы).

14. Открыть файл, имя которого задается с клавиатуры. Переписать в новый файл только те строки, которые являются комментариями типа //…

15. Открыть файл, имя которого задается с клавиатуры. Переписать в новый файл только комментарии типа /*…*/

16. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, удалив заданную последовательность символов из файла.

17. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, заменив одну заданную последовательность символов на другую.

18. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, который содержит набор слов, содержащихся в исходном файле (каждое слово должно входить в результирующий файл только 1 раз).

19. Открыть файл, имя которого задается с клавиатуры. Переписать в новый файл только те слова, которые записаны латинскими буквами.

20. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, удалив лишние пробелы между словами, но не изменяя деление на строки.

21. Открыть файл, имя которого задается с клавиатуры (файл должен содержать текст, включающий точки). Создать новый файл, удалив пробелы перед точками (если они есть).

22. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, в который переписать только те слова, которые записаны большими буквами (русскими и латинскими).

23. Открыть файл, имя которого задается с клавиатуры (файл должен содержать текст, включающий точки). Создать новый файл, отредактировав текст исходного файла: если первое слово, идущее за точкой начинается с маленькой буквы, заменить эту букву на большую.

24. Написать программу, которая считывает из файла данные о продаваемых компьютерах, описываемые следующей структурой:
название, тип процессора, тактовая частота, объем памяти, объем жесткого диска, производитель, цена.
Вывести на экран сведения о компьютерах с самой высокой тактовой частотой.

25. Написать программу, которая считывает из файла данные о жителях города, описываемые структурой: Фамилия имя отчество, дата рождения, улица, дом, квартира.
Вывести на экран сведения о жителях дома, номер которого вводится с клавиатуры (улицы могут быть разными).

26. Написать программу, которая считывает данные об автомобилях, описываемых следующей структурой: марка, год выпуска, страна-производитель, цена, фамилия имя отчество владельца.
Вывести на экран сведения об автомобилях иностранного производства.

27. Написать программу, которая считывает из файла данные о студентах, описываемые следующей структурой: Фамилия имя отчество, номер группы, количество экзаменов в текущем семестре, количество несданных экзаменов.
Вывести на экран список задолжников.

28. Написать программу, которая считывает данные о продаваемых товарах, описываемые следующей структурой: Название, цена, страна производитель, количество поступившего товара, количество проданного товара.
Вывести на экран сведения о товарах, которых осталось меньше половины от количества поступления.

29. Написать программу, которая считывает данные из файла, содержащего данные о квартирах, описываемые следующей структурой: улица, дом, номер квартиры, общая площадь, количество жильцов.
Вывести на экран сведения о квартире, в которой на каждого жильца приходится наименьшее количество площади.

30. Написать программу, которая считывает данные из файла о фильмах, имеющихся в прокате, описываемые структурой: Название, жанр, страна-производитель, год выпуска, Фамилия и имя актера, снявшегося в главной роли.
Вывести сведения о фильмах, в которых играет актер, фамилия и имя которого вводится с клавиатуры.

Лабораторная работа № 6

Тема: “Программы, использующие массивы ”.

1. Программа заполняет массив A(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.

Программа иллюстрирует работу с массивом фиксированного размера, заполненным случайными числами.

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std; // Используем стандартное пространство имён

/* Функция, выполняющая перестановку значений двух переменных (обратите внимание на то, что аргументы должны быть объявлены как ссылки): */

void swap(int a, int b)

{

int c;

c=a; a=b; b=c;

}

// Подпрограмма сортировки методом «пузырька»

void sort(int* a, int n)

{

for ( int i = 1; in; i++ ) // отсчитываем проходы по массиву

for ( int j = 0; jn-i; j++ ) // проходим по массиву

{

if ( a[j]a[j+1] ) // сравниваем два соседних элемента

swap(a[j], a[j+1]); // переставляем их

}

}

int main()

{

if(SetConsoleCP(1251)==0)

{

cerr

}

if(SetConsoleOutputCP(1251)==0)

{

cerr

}

int n=50;

int *a=new int[n]; // объявляем массив из 50 элементов

cout

// заполняем массив случайными числами и выводим на экран

int RANGE_MIN = -20; // Минимальный элемент

int RANGE_MAX = 51; // Максимальный элемент

//Пример взят из справки ms-help: //MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vccrt/html/75d9df25-7aaf-4a88-b940-2775559634e8.htm

for ( int i = 0; in; i++ )

{

a[i] = (int)(((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN); // случайные числа из диапазона [-20, 30]

cout

}

cout

// Вызываем функцию сортировки и передаем ей указатель на массив и размер массива:

sort( a, n);

printf(\nМассив, отсортированный по возрастанию:\r\n);

// для вывода массива на экран требуется цикл:

for (int i = 0; in; i++)

{

printf(%4d, a[i]); // выводим элемент массива на экран

}

printf(\r\n); // перевод курсора в начало следующей строки

_getch();

return 0;

}

2. Программа, которая по заданным корням многочлена степени n восстанавливает все коэффициенты многочлена.

Программа иллюстрирует работу с массивами изменяющегося размера.

Для вычисления коэффициентов можно воспользоваться соотношением:

В результате при вводе первого корня мы должны получить коэффициенты 1 и
– x, например: при x1 = 2 мы получаем многочлен (два коэффициента).

При вводе второго и последующих корней коэффициенты вычисляются следующим образом:

a0 a1 a2 … an-1

+ -a0xn -a1xn … -an-2xn – an-1xn

Например: при вводе двух корней 2 и –3 получаем:

(x-2)(x+3) = x2-2x+3x-6 =1×2 + 1x –6

1 -2

+ -1(-3) –(-2)(-3)

—————————

1 1 -6

Проходить по массиву коэффициентов нужно обязательно с конца, поскольку коэффициенты изменяются в процессе вычислений, а при вычислении нового значения коэффициента используется коэффициент, стоящий слева от него.

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int main()

{

if(SetConsoleCP(1251)==0)

{

cerr

}

if(SetConsoleOutputCP(1251)==0)

{

cerr

}

do

{

int n; // количество корней

do

{

cout0 — ;

cinn;

} while (n1);

double* x = new double [n]; //корни

double* a = new double [n+1]; //коэффициенты многочлена

a[0] = 1; // первый коэффициент равен единице

cout

for (int i = 0; in; i++)

{

cout

cinx[i];

a[i+1] = -a[i] * x[i];

//Добавили последний коэффициент в массив

// вычисляем остальные коэффициенты:

for (int j = i; j = 1; j—)

a[j] += -a[j-1] * x[i];

}

// вывод:

cout

for (int i = 0; in; i++)

cout

cout

cout

for (int i=0; i

cout

cout

delete []x;

delete []a;

cout

}while(_getch()!=27);

return 0;

}

3. Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы.

При работе с линейным массивом, записанным в файл, необязательно переписывать его в оперативную память (однако следует помнить, что обращение процессора к оперативной памяти происходит быстрее)

#include

#include //!!! Отвечает за работу с локализацией ОС

#include

#include

#include

#include

#include

#include

#include

#include // Этот файл обеспечивает работу с файлами

using namespace std;

/* если с файлом работают как главная программа, так и функции, лучше объявить его как глобальную переменную */

ifstream file(test.txt);

// Объявляем функцию, которая будет выдавать индексы:

void ShowIndex( int , float );

int main()

{

if(SetConsoleCP(1251)==0)

{

cerr

}

if(SetConsoleOutputCP(1251)==0)

{

cerr

}

if(!file)

{

cerr

return 0;

}

float n, min, max; // число, считываемое из файла, минимум и максимум

int k=0; // количество чисел в файле

while (1) // как бы бесконечный цикл

{

filen;

if (file.eof()) break;

// если достигнут конец файла, выходим из цикла

if (!k) // если считано первое число (k=0)

{

min = n;

max = n;

}

else // если число – не первое

{

if (n

// если встретилось число меньше, заменяем значение min

if (nmax) max=n;

// если встретилось число больше, заменяем значение max

}

cout

/* выводим считанное число на экран и увеличиваем счетчик прочитанных чисел */

}

cout

cout

cout

cout

ShowIndex(k, min);

// вызываем функцию и передаем ей количество элементов и значение min

cout

cout

ShowIndex(k, max);

// вызываем функцию и передаем ей количество элементов и значение max

_getch();

return 0;

}

/* Функция, которая считывает k чисел из файла, находит номера элементов, значение которых совпадает с m, и выводит на экран найденные индексы */

void ShowIndex( int k,float m)

{

file.clear();

file.seekg(0L,ios::beg); // переходим в начало файла

float n; // число, считываемое из файла

for (int i=0; i

{

filen;

if (n == m) cout

// если число равно m, выводим номер этого числа на экран

}

cout

}

4. Программа заполняет массив A[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали.

Номера элементов, стоящих на главной диагонали, совпадают; номера элементов, стоящих на побочной диагонали удовлетворяют условию: i + j = n+1, где n –размер матрицы.

#include

#include //!!! Отвечает за работу с локализацией ОС

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int main()

{

if(SetConsoleCP(1251)==0)

{

cerr

}

if(SetConsoleOutputCP(1251)==0)

{

cerr

}

//Динамически создаём 2- мерный массив

int n=5, **a= new int*[n];

cout

int RANGE_MIN = -3; // Минимальный элемент

int RANGE_MAX = 7; // Максимальный элемент

// для прохода по всем ячейкам матрицы обычно используют двойной цикл

for (int i = 0; i5; i++) // проходим по строкам матрицы

{

a[i]=new int [n];

// в каждой строке проходим по столбцам:

for (int j = 0; j5; j++) // счетчики должны быть разными!

{

a[i][j]=(int)(((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN);

cout

}

cout

/* после вывода строки матрицы переводим курсор в начало следующей строки на экране */

}

cout

// вычисляем произведение:

long p = 1;

for (int i = 0; i5; i++)

p *= a[i][5-i-1]; // номер столбца вычисляем через номер строки

// обратите внимание на то, что для прохода по диагонали требуется один цикл

cout

_getch();

return 0;

}

Статьи к прочтению:

How to use Google Sheets


Похожие статьи: