Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛекцииЛаб(Часть_2_Книги).doc
Скачиваний:
4
Добавлен:
03.05.2019
Размер:
988.16 Кб
Скачать

Упражнения, тесты.

  1. Пусть в программе записано следующее объявление: FILE *f; Что объявлено?

Варианты ответа:

    1. указатель на область оперативной памяти для данных, хранящихся в файле на внешнем устройстве;

    2. указатель на область оперативной памяти для структуры, поля которой зависят от конкретной задачи;

    3. указатель на область оперативной памяти для характеристик (параметров) файла в виде структуры со стандартным именем FILE;

    4. указатель на область внешней памяти для характеристик (параметров) файла в виде структуры со стандартным именем FILE;

  1. С каким режимом (типом доступа к файлу), который записывается в функции fopen, можно создать новый файл?

Варианты ответа:

    1. только w”; 2) только w+”; 3) wи w+”; 4) только a; 5) только a+”; 6) “a” и “a+”; 7) “w”, “w+”,“a”и “a+”; 8) “w”и “a”;

9) “w+”и “a+”;

  1. Даны следующие варианты кода:

1) FILE * f; fp=fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb");

if (fp==NULL) { cout<<”Error “; exit(1); }

else cout<<”File is opened”;

2) if((fp=fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb"))==NULL)

{ cout<<”Error “; exit(1); }

else cout<<”File is opened”;

3) FILE * f; fp=fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb");

if (!fp) cout<<”File is opened”; else { cout<<”Error “; exit(1); }

4) FILE * f; if (fp=fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb"))

{ cout<<”Error “; exit(1); }

else cout<<”File is opened”;

5) FILE * f; if (fp=fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb"))

cout<<”File is opened”; else { cout<<”Error “; exit(1); }

6) FILE * f; if (fp==fopen("d:\\ANA\\cpp\\2005_06\\ bf1.dat","rb"))

cout<<”File is opened”; else { cout<<”Error “; exit(1); }

Какие из предложенных вариантов правильно открывают файл для чтения?

  1. Пусть в программе записаны следующие объявления:

FILE *f; const m=5; int a[m]={10,-22, 30, 4,-50};

и открыт файл:

f=fopen(“…”, “w”);

Какие из следующих операторов (последовательностей операторов) из предоженнных правильно записывают все пять чисел массива a в файл?

      1. fwrite (a, 5, 1, f);

      2. fwrite (a, 20, 1, f);

      3. fwrite (a, 10, 2,f);

      4. fwrite(&a[0], sizeof(a), 1, f);

      5. for(int i=0; i<n; i++) fwrite(a[i], sizeof(int), 1, f);

      6. for(int i=0; i<n; i++) fwrite(a[i], sizeof(a), 1, f);

      7. for(int i=0; i<n; i++) fwrite(&a[i], sizeof(int), 1, f);

      8. for(int i=0; i<n; i++) fwrite(&a[i], sizeof(a), 1, f);

  1. Пусть в программе записаны следующие объявления:

FILE *f; const m=20;

int a[m]={10,-22, 30, 4,-50, 6, 7,8,9, 100, 110, 12, 13, 14, 15};

и открыт файл:

f=fopen(“…”, “w”);

Сколько и какие целые числа запишем в файл с помощью одного вызова функции fwrite(a, 20, 2, f); ?

Варианты ответа:

1) 10 первых чисел массива a;

2) 20 чисел: 15 записанных при объявлении массива и пять нулей;

3) 15 записанных при объявлении массива;

4) 10 чисел из второй половины массива а, то есть

110, 12, 13, 14, 15, 0, 0, 0, 0, 0 ;

5) Ошибка в fwrite, так как нет в массиве 20*2=40 чисел, которые функция пытается записать.

  1. Как надо объявить массив а с элементами типа short, чтобы с помощью функции fwrite(a, 40, 1, f); весь этот массив был записан в файл?

Варианты ответа:

1) short a[10]; 2) short a[20]; 3) short a[80]; 4) short a[40]; 5) short a[5];

  1. Пусть в программе записаны следующие объявления:

FILE *f;

struct ts { char fio[15]; int tel; } vs;

открыт файл (f=fopen(“…”, “w”);) и определены поля структуры. Какие из следующих операторов (последовательностей операторов) правильно записывают одну структуру (ФИО и телефон) в файл?

Варианты ответа:

1)fwrite(&ts, sizeof(vs),1,f); 2) fwrite(&vs, sizeof(ts),1,f);

3) fwrite(vs, sizeof(vs),1,f); 4) fwrite(vs, sizeof(ts),1,f);

5) fwrite(&vs, 20, 1, f); 6) fwrite(&vs, 15, 1, f);

7) fwrite(vs, 20, 1, f); 8) fwrite(vs, 15, 1, f);

  1. Пусть в программе записаны следующие объявления:

FILE *f; const m=10; int a[m], b;

Пусть с помощью функции fwrite в файл записали 10 целых чисел типа int и файл открыт для чтения. Даны следующие варианты фрагмента программы:

1) for (int i=1; i<= m; i++)

{ fseek(f, (m-i)*sizeof(int), SEEK_SET);

fread(&b, sizeof(b), 1, arf);

// использование числа b …}

2) for (int i=m-1; i>=0; i--)

{ fseek(f, i*sizeof(int), 0);

fread(&b, sizeof(b), 1, arf);

// использование числа b …}

3) for (int i=1; i<= m; i++)

{ fseek(f, (m-i)*sizeof(int),1);

fread(&b, sizeof(b), 1, arf);

// использование числа b …}

4) for (int i=1; i<= m; i++)

{ fseek(f, -i*sizeof(b), SEEK_END);

fread(b, sizeof(b), 1, arf);

// использование числа b …}

5) for (int i=1; i<= m; i++)

{ fseek(f, -i*sizeof(int), 0);

fread(&b, sizeof(b), 1, arf);

// использование числа b …}

6) for (int i=1; i<=m;i++)

{ fseek(arf, (m-i)*sizeof(a), SEEK_SET);

fread(a,sizeof(a),1,arf);

// использование a …}

Какие из предложенных вариантов читают эти 10 чисел из файла в обратном порядке?

  1. Пусть int p; FILE *f; Какие из следующих вызовов функции правильно определяют положение указателя чтения-записи созданного файла и запоминают его?

1) fgetpos (f, p); 2) fgetpos (f, &p); 3) fsetpos (f, p); 4) fsetpos (f, &p);

10. Пусть int *p=new int; FILE *f; Какие из следующих вызовов функции правильно устанавливают положение указателя чтения-записи созданного файла?

1) fgetpos (f, p); 2) fgetpos (f, &p); 3) fsetpos (f, p); 4) fsetpos (f, &p);

11. Пусть FILE *f; Какие из следующих вызовов функции правильно устанавливают положение указателя чтения-записи созданного файла на его начало?

1) rewind (f); 2) rewind (*f); 3) fseek(f, 0, 0); 4) fseek(f, 0, SEEK_END);

5) fseek(f, 0, 1); 6) ftell(f); 7) int p=0; fsetpos(f, &p); 8) int p=0; fsetpos(f, p);

Лабораторная работа 9.

Тема. Работа с текстовым файлом.

Требования и общие указания к заданиям.

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

  • создание файла;

  • просмотр файла, т. е. вывод его содержимого на экран;

  • добавление текста в файл;

  • реализация функциональной части, указанной в варианте, и запись полученного результата во второй текстовый файл.

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

Варианты заданий.

B. Задачи второго среднего уровня.

  1. Каждую букву заменить её номером в алфавите. В одной строке экрана одним цветом вывести символы строки с двумя пробелами между ними, а ниже другим цветом – номера символов.

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

  3. В каждом слове текста k-ю букву заменить заданным символом. Если k больше длины слова, корректировку не выполнять.

  4. Слова заданной длины заменить указанной подстрокой, не обязательно словом. Как использовать этот алгоритм замены для удаления слов заданной длины?

  5. После каждого слова текста вставить указанную подстроку.

  6. После k –го символа слова вставить указанную подстроку. Если k больше длины слова, вставку не выполнять.

  7. После одного слова текста вставить другое слово.

  8. Удалить все символы, кроме пробелов, не являющиеся буквами. Между последовательностями подряд идущих букв оставить хотя бы один пробел.

  9. Удалить все слова заданной длины.

  10. Удалить все слова – палиндромы.

  11. Удалить из текста его часть, заключённую между двумя вводимыми с экрана символами (например, между скобками “{“ и “}”, между звёздочками и т.п). Считать, что эти символы могут быть только в одной строке.

  12. Обработка текста программы на языке С++ как последовательности строк символов. В качестве входной информации разрабатываемой программы задан некоторый элемент языка или небольшой фрагмент программы. Необходимо записать его в файл и найти количество всех символов (длину) каждого комментария, записанного после символов “//”. Предполагается, что для других целей эти символы не используются, и в строке может быть записан только один комментарий.

  13. Из текста программы (см. 12) удалить комментарии, ограниченные символами “/*” и “*/”. Для других целей эти символы не используются. Считать, что эти символы могут быть только в одной строке.

  14. Сколько раз в тексте программы (см.12) используется вывод с помощью cout? Предусмотреть, что это ключевое слово может быть в текстовой константе.

  15. Сколько раз в тексте программы (см.12) используется ввод с помощью cin? Предусмотреть, что это ключевое слово может быть в комментариях после символов //.

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

С. Задачи повышенной сложности.

    1. Найти и вывести те предложения (см. 16), в которых есть одинаковые слова.

    2. Найти одно любое слово в каждом предложении (см. 16), которое есть в следующем предложении. Последнее предложение не анализируется.

    3. В каждом вопросительном предложении текста (см. 16) найти и вывести без повторений слова заданной длины.

    4. В каждом предложении текста (см. 16) поменять местами первое слово с последним словом.

    5. Удалить из текста его часть, заключённую между двумя вводимыми с экрана символами (например, между скобками “{“ и “}”, между звёздочками и т.п) или между двумя парами символов ( например, между “/*” и “*/”, то есть комментарии из текста программы). Считать, что эти символы могут быть в разных строках.

    6. Текст шифруется по следующему правилу: из исходного текста выбирается 1, 4, 7, 10-й и т.д. символы, затем 2, 5, 8, 11-й и т.д. символы, затем 3, 6, 9, 12-й и т. д. символы. Зашифровать заданный текст, то есть на основании исходного текстового файла получить новый файл по указанному выше правилу.

    7. Пусть зашифрован текст по правилу, описанному в предыдущем примере, то есть в файле хранится зашифрованный текст. Расшифровать заданный текст, то есть получить второй новый файл.

    8. Обработка текста программы на языке С++ как последовательности строк символов. В качестве входной информации разрабатываемой программы задан некоторый элемент языка или небольшой фрагмент программы. Необходимо записать его в файл и проанализировать в зависимости от варианта. Найти все вложенные операторы if?

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

    10. Задан заголовок оператора for (см. 8). Есть ли в нём синтаксические ошибки? Предполагается, что каждое из трёх выражений имеет простой вид. В первом из них одной переменной присваивается значение константы. Во втором выражении используются только операции сравнения перменной с целой константой типа n<10 и нет логических операций. В третьем выражении используются только операции ++, - - (например, i++) , +=, - = (типа x+=2) , где слева переменная, а справа константа целого типа.

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

    12. Найти количество операторов в теле цикла каждого оператора while (см. 8). Независимо от количества операторов тела цикла фигурные скобки всегда записываются. В теле цикла отсутствуют операторы, которые требуют фигурных скобок.

    13. Найти количество операторов в теле цикла каждого оператора do while (см. 8). Независимо от количества операторов тела цикла фигурные скобки всегда записываются. В теле цикла отсутствуют операторы, которые требуют фигурных скобок.

    14. Проанализировать баланс скобок при условии, что они используются только для объединения нескольких простых операторов в один блок (см. 18).

Лабораторная работа 10.

Тема. Файлы в экономических задачах.

Требования и общие указания к заданиим.

Необходимо разработать и проверить функции для реализации следующих действий с файлами:

  • создание файла, записи которого имеют указанную структуру;

  • просмотр файла, т. е. “чистый” вывод его содержимого на экран в удобном для анализа виде без никакой обработки и анализа;

  • добавление записей в конец файла (аналогично созданию, только файл открываем с режимом “a”);

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

Замечание. Кроме предложенных здесь вариантов заданий можно использовать задачи из лабораторной работы 6 этого второго семестра.

Варианты заданий.

A. Задачи первого простого уровня.

  1. Структура записей файла: отделение; фамилия, имя, отчество; массив из пяти оценок. Для заданного отделения вывести фамилии, имя, отчество “двоечников”.

  2. Структура записей файла: курс; фамилия, имя, отчество; массив из пяти оценок по десятибалльной системе. Для заданного курса вывести фамилии, имя, отчество “отличников”(9 и (или) 10).

  3. Структура записей файла: отделение; фамилия, имя, отчество; массив оценок; признак. Для каждого студента получить одно из следующих значений признака: 5 –отличник (9, 10), 4 – хорошист (6, 7, 8), 3 – троечник (4, 5), 2 – неуспевающий (1, 2, 3).

  4. Структура записей файла: курс; фамилия, имя отчество; массив оценок; материальное положение (например, 0, 1, 2); размер стипендии. Для каждого студента определить размер стипендии, выбрав самостоятельно критерий.

  5. Структура записей файла: отделение; фамилия, имя, отчество; массив оценок. Вывести список (фамилия, инициалы; массив оценок) неуспевающих студентов.

  6. Структура записей файла: шифр подразделения; фамилия, имя отчество; год рождения; образование (например, 0 – неоконченное базовое, 1 – базовое, 2 – общее среднее и т. д.). Для заданного подразделения, шифр которого вводим, вывести фамилии и инициалы сотрудников с неоконченным базовым и базовым образованием.

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

  8. Структура записей файла: шифр подразделения; фамилия, имя отчество сотрудника; год поступления на работу. Найти количество и процент работников со стажем работы до 5 лет и вывести их фамилии и инициалы.

  9. Структура записей файла: шифр темы; шифр книги; фамилия, имя, отчество автора; название книги; издательство; год издания. Вывести список книг по заданной теме, изданных позже указанного года.

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

  11. Структура записей файла: шифр подразделения; план выпуска продукции по кварталам одного года в виде массива; фактическое выполнение плана по кварталам одного года в виде массива; процент выполнения плана по кварталам одного года в виде массива. Для каждого подразделения получить процент выполнения плана по кварталам.

  12. Структура записей файла: фамилия, имя, отчество; результат соревнований по некоторому виду спорта. Найти три лучшие результаты и соответствующие три фамилии участников. Предполагается, что абсолютно одинаковые результаты несколько участников показать не могли.

  13. Структура записей файла: номер телефона; фамилия, имя отчество абонента; адрес (улица, дом, квартира). По введённому номеру телефона вывести фамилию, инициалы и адрес абонента или сообщение, что такого телефона в файле нет.

  14. Структура записей файла: номер телефона; фамилия, имя отчество абонента; адрес (улица, дом, квартира). Скорректировать файл после установки новых телефонов, информация о которых (см. структуру записей) вводится с экрана.

  15. Структура записей файла: шифр сбербанка; номер счёта; размер вклада. Найти и вывести номера счетов и шифры сбербанков с максимальным размером вклада.

B. Задачи второго среднего уровня.

  1. Структура записей файла: отделение; фамилия, имя, отчество; массив из пяти оценок. Для заданного отделения вывести фамилии и инициалы “двоечников” по убыванию общего количества плохих оценок (1, 2, 3).

  2. Структура записей файла: курс; фамилия, имя, отчество; массив из пяти оценок по десятибалльной системе. Для заданного курса вывести фамилии и инициалы “отличников”(9 и (или) 10) по убыванию среднего бала.

  3. Структура записей файла: отделение; фамилия, имя, отчество; массив оценок; признак. Для каждого студента получить одно из следующих значений признака: 5 –отличник (9, 10), 4 – хорошист (6, 7, 8), 3 – троечник (4, 5), 2 – неуспевающий (1, 2, 3). Студентов заданного отделения рассортировать по этому полученному признаку. Для одинакового признака сортировать по среднему баллу.

  4. Структура записей файла: курс; фамилия, имя отчество; массив оценок в десятибалльной системе; материальное положение (например, 0,1); размер стипендии. Для каждого студента определить размер стипендии, выбрав самостоятельно критерий. Рассортировать студентов по курсам, внутри курса – по полученной стипендии.

  5. Структура записей файла: отделение; фамилия, имя, отчество; массив оценок. Для каждого отделения вывести список (фамилия, инициалы) успевающих студентов по убыванию их среднего балла.

  6. Структура записей файла: шифр подразделения; фамилия, имя отчество; год рождения; образование (например, 0 – неоконченное базовое, 1 – базовое, 2 – общее среднее и т. д.). Для заданного подразделения, шифр которого вводим, вывести информацию о сотрудниках сначала по образованию, а затем для одинакового образования по возрасту.

  7. Структура записей файла: шифр подразделения; фамилия, имя отчество; пол, год рождения. Для каждого подразделения найти количество и процент работников пенсионного возраста, вывести их фамилии и инициалы по убыванию возраста.

  8. Структура записей файла: шифр подразделения; фамилия, имя отчество сотрудника; год поступления на работу. Для каждого подразделения найти количество и процент работников со стажем работы до 5 лет, от 6 до 10 лет, от 11 до 15лет и т. д.

  9. Структура записей файла: шифр темы; шифр книги; фамилия, имя отчество автора; название книги; издательство; год издания. Вывести список книг по заданной теме указанного издательства по убыванию года издания.

  10. Структура записей файла: шифр темы; шифр книги; фамилия, имя отчество автора; название книги; издательство; год издания. Вывести список книг, изданных в заданном издательстве, по возрастанию шифра темы.

  11. Структура записей файла: шифр подразделения; план выпуска продукции по кварталам одного года в виде массива; фактическое выполнение плана по кварталам одного года в виде массива. Рассортировать информацию о работе подразделений следующим образом: сначала должна быть информация о тех подразделениях, которые выполнили план во всех четырёх кварталах, затем о тех, кто выполнил план в трёх кварталах и т. д.

  12. Структура записей файла: фамилия, имя, отчество; результат соревнований по некоторому виду спорта. Найти три лучшие результаты и соответствующие фамилии участников. Таких победителей может быть больше трёх, так как одинаковые результаты могли показать несколько участников.

  13. Структура записей файла: фамилия, имя, отчество; пол; результат соревнований по некоторому виду спорта. Найти лучший результат среди женщин и соответствующие фамилии участников (не обязательно одна) и лучший результат среди мужчин и соответствующие фамилии участников (также не обязательно одна).

  14. Структура записей файла: шифр сбербанка; номер счёта; размер вклада. Для каждого сбербанка найти общее количество вкладчиков и средний размер вклада.

  15. Структура записей файла: шифр сбербанка; номер счёта; размер вклада. Ввести информацию о поступлении денег на счета и о их снятии со счетов. Выполнить корректировку файла.

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

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

В следующих задачах (18 – 26) предварительно необходимо определить, какая информация (поля структуры) должна храниться в файле.

  1. В файле хранится информация о ходе выполнения лабораторных работ всеми студентами одного преподавателя. Рассортировать студентов по убыванию количества не выполненных в срок заданий. [Для сортировки использовать метод вставки].

  2. В файле хранится информация о ходе выполнения лабораторных работ всеми студентами одного преподавателя. [Методом слияния] рассортировать номера заданий по убыванию количества студентов, выполнивших задания вовремя. После занятия выполнить корректировку файла.

  3. Составить программу планирования и учёта нагрузки одного преподавателя.

  4. В файле хранится расписание занятий студентов одного курса некоторого факультета. Вывести расписание для заданной подгруппы.

  5. В файле хранится расписание занятий студентов одного курса некоторого факультета. Вывести номера тех подгрупп и дни, когда есть “форточки”.

  6. В файле хранится расписание занятий студентов одного курса некоторого факультета. Вывести номера тех подгрупп, у которых более одного дня в неделю есть занятия позже введённого времени (например, позже, чем 19час.).

  7. В файле хранится расписание аудиторных занятий преподавателей кафедры. В какие дни у преподавателя нет занятий?

  8. В файле хранится расписание аудиторных занятий преподавателей кафедры. Для заданного преподавателя вывести расписание его занятий.

  9. В файле хранится расписание аудиторных занятий одного преподавателя. Вывести преподавателей с наибольшим количеством аудиторных занятий в неделю.

Лабораторная работа 11.

Тема: Файлы в математических задачах.

Требования и общие указания к заданиям.

Необходимо разработать и проверить функции для реализации следующих действий с файлами:

  • создание файла;

  • просмотр файла, т. е. “чистый” вывод его содержимого на экран в удобном для анализа виде без никакой обработки и анализа;

  • добавление записей в конец файла (аналогично созданию, только файл открываем с режимом “a”);

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

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

A. Задачи первого простого уровня.

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

  2. Из заданного множества точек на плоскости, координаты которых должны храниться в файле, найти точки с максимальным расстоянием от заданной точки, координаты которой вводятся с экрана.

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

  4. В файл записать координаты вершин выпуклых четырёхугольников на плоскости. Вывести на экран координаты вершин квадратов и найти их количество.

  5. В файл записать координаты точек плоскости. Вывести на экран координаты точек, расположенных на прямой, коэффициенты уравнения которой заданы и вводятся с экрана. Найти количество таких точек.

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

  7. В файл записать построчно вещественную матрицу. Найти строку (одномерный массив из файла) с наибольшим количеством положительных чисел.

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

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

  10. В файл записать построчно вещественную матрицу. Найти и вывести строки, в которых нет отрицательных чисел.

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

  12. В файл записать вещественную матрицу A. С экрана ввести k — номер строки матрицы. Получить и вывести на экран скалярное произведение k-й строки матрицы на её первую строку.

B. Задачи второго среднего уровня.

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

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

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

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

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

  6. В один файл записать координаты конечного множества точек плоскости, а в другой — координаты центра и радиусы m концентрических окружностей. Между какими окружностями (первой и второй, второй и третьей и т. д., (m-1)-й и m-й) больше всего точек заданного множества?

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

  8. В файл записать построчно целочисленную матрицу, у которой в строке хранятся оценки одного студента на всех экзаменах. Найти номера строк отличников (9, 10), хорошистов (>=6), троечников (>=4) и двоечников (есть 1, 2, или 3).

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

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

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

  12. В файл записать вещественную матрицу A. Получить и записать в файл вектор B, i-й элемент которого равен скалярному произведению i-й строки матрицы на её первую строку. Матрицу и полученный вектор вывести на экран.

С. Задачи повышенной сложности.

  1. В один файл записать матрицу, а в другой — вектор. Найти произведение матрицы на вектор и записать полученный вектор в третий файл.

  2. В один файл записать вектор, а в другой — матрицу. Найти произведение вектора на матрицу и записать полученный вектор в третий файл.

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

  4. Методом Гаусса решить систему n линейных алгебраических уравнений c n неизвестными. Матрица коэффициентов системы и вектор свободных членов хранятся в двух файлах.

  5. Методом Гаусса, используя схему выбора главного элемента, решить систему n линейных алгебраических уравнений c n неизвестными. Матрица коэффициентов системы и вектор свободных членов хранятся в двух файлах.

  6. В файл записать построчно вещественную квадратную матрицу Обратить её по схеме единственного деления.

  7. Вычислить определитель записанной в файле квадратной матрицы, используя метод Гаусса.

  8. Методом простой итерации решить систему n линейных алгебраических уравнений c n неизвестными. Матрица коэффициентов системы и вектор свободных членов хранятся в двух файлах.

  9. Методом Зейделя решить систему n линейных алгебраических уравнений c n неизвестными. Матрица коэффициентов системы и вектор свободных членов хранятся в двух файлах.

  10. Найти собственные числа и собственные векторы записанной в файл матрицы методом непосредственного вычисления определителя.

  11. Методом итераций найти наибольшее по модулю собственное значение и соответствующий ему собственный вектор записанной в файл матрицы.

  12. В файл записать построчно вещественную матрицу A. Найти все такие i и j, что скалярное произведение i - строки на j-ю наибольшее.

Г л а в а 6