- •Содержание:
- •Введение
- •Задача 1(№130)
- •Текст программы:
- •Задача 2(№133)
- •Текст программы:
- •Задача 3(№142)
- •Текст программы:
- •Задача 4(№164)
- •Текст программы:
- •Задача 5(№169)
- •Текст программы:
- •Задача 6(№179)
- •Текст программы:
- •Задача 7(№187)
- •Текст программы:
- •Текст программы:
- •Задача 9(№197)
- •Текст программы:
- •Список используемой литературы
Задача 2(№133)
Постановка задачи: Напишите функцию, возвращающую ссылку на максимальный элемент массива. Используйте ее в программе, которая заменит значение максимального элемента массива на среднее арифметическое значение элементов этого массива.
Алгоритм решения: программа использует функцию на поиск максимального элемента в массиве, заменяя значение этого максимального элемента средним арифметическим элементов заданного массива.
Текст программы:
include <iostream>
#include <conio.h>
using namespace std;
int& max(int x[],int n)
{
int i,k,max2=x[0];
for(i=0;i<n;i++){
if(x[i]>max2){
k=i;
max2=x[i];
}
}
int& max1=x[k];
return max1;
}
int main()
{
setlocale(LC_ALL,"Russian");
int n=8,avr,i,sum=0;
int x[]={12,-1,-5,3,44,23,5,9};
cout<<"Исходный массив: ";
for (i=0;i<n;i++){
cout<<x[i]<<" ";
}
for(i=0;i<n;i++){
sum+=x[i];}
avr=sum/n;
cout<<"\nСреднее значение массива = "<<avr;
max(x,n)=avr;
cout<<"\nИзмененный массив: ";
for (i=0;i<n;i++){
cout<<x[i]<<" ";
}
getch();
return 0;
}
Задача 3(№142)
Постановка задачи: Найдите и выведите самую длинную строку текстового файла.
Алгоритм решения: ввести с клавиатуры имя входного файла, затем читать строки из файла, пока не достигнут его конец. Находим длину строки и запоминаем её в переменной В, количество символов в переменной К. Если количество прочитанных строк (К) сравнимо со счетчиком (i), то выводим на печать эту строку. В конце программы закрываем входной файл.
Текст программы:
#include <fstream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
const int lenname=13; //Длина строки с именем файла
const int MAXLEN=200; //Максимальная длина строки
int main()
{
ifstream fin; //Файловый поток для ввода
char filename[lenname]; //Массив для имени файла
char line[MAXLEN]; //Массив для строк
cout<<"Ввести имя входного файла ";
cin>>filename;
fin.open(filename);
if(!fin){ //Если не удалось открыть входной файл
cerr<<"Не удалось открыть файл "<<filename<<'\n';
exit(1);
}
int i=0; //Количество прочитанных символов
int A; //Длина прочитанной строки
int B=1; //Единичная строка
int K; //Количество символов
cin.get(); //Убираем код из cin
while (!fin.eof()){ //Пока не достигнут конец файла
fin.getline(line,MAXLEN); //Читаем строку из файла
A=strlen(line); //Нахождение длины строки
if(A>B){ //Если текущая строка больше единичной
B=A; //то в В запоминаем длину прочитанной строки
K=i; //переменной К присваиваем количество прочитанных символов
}
i++; //Увеличиваем счётчик
}
fin.close();
fin.open(filename);
i=0; //Зануляем счетчик
while(!fin.eof()){ // Пока не достигнут конец файла
fin.getline(line,MAXLEN); //Читаем строку из файла
if(i==K){ //Если счетчик сравним с количеством прочитанных символов,
cout<<line; //то выводим строку на печать
}
i++; //Увеличиваем счетчик
}
fin.close(); //Закрытие входного файла
getch();
}