- •Содержание:
- •Введение
- •Задача 1(№130)
- •Текст программы:
- •Задача 2(№133)
- •Текст программы:
- •Задача 3(№140)
- •Текст программы:
- •Задача 4(№161)
- •Текст программы:
- •Задача 5(№172)
- •Текст программы:
- •Задача 6(№180)
- •Текст программы:
- •Задача 7(№188)
- •Текст программы:
- •Текст программы:
- •Задача 9(№201)
- •Текст программы:
- •Список используемой литературы
Задача 2(№133)
Постановка задачи: Напишите функцию, возвращающую ссылку на максимальный элемент массива. Используйте ее в программе, которая заменит значение максимального элемента массива на среднее арифметическое значение элементов этого массива.
Алгоритм решения: программа использует функцию на поиск максимального элемента в массиве, заменяя значение этого максимального элемента средним арифметическим элементов заданного массива.
Текст программы:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int& max(int A[],int N)
{
int i,k,max2=A[0];
for(i=0;i<N;i++){
if(A[i]>max2){
k=i;
max2=A[i];
}
}
int& max1=A[k];
return max1;
}
int main()
{
setlocale(LC_ALL,"Russian");
int N=8,SA,S=0,i;
int A[]={1,2,6,-4,2,1,37,3};
cout<<"Иссходный массив";
for (i=0;i<N;i++){
cout<<A[i]<<" ";
}
for(i=0;i<N;i++){
S+=A[i];}
SA=S/N;
cout<<"\n Среднее значение массива = "<<SA;
max(A,N)=SA;
cout<<"\n Измененный массив: ";
for (i=0;i<N;i++){
cout<<A[i]<<" ";
}
getch();
return 0;
}
Задача 3(№140)
Постановка задачи: Дан текстовый файл f. Получить из этого файла файл g, заменив все прописные (большие) буквы одноименными строчными.
Текст программы:
#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); //Читаем строку из файла
if(c >= ’A’ && c <= ’Z’)
return c + ’a’ – ’A’;
else
return c;
}
}
fin.close();
fin.open(filename);
i=0; //Зануляем счетчик
while(!fin.eof()){ // Пока не достигнут конец файла
fin.getline(line,MAXLEN); //Читаем строку из файла
if(i==K){ //Если счетчик сравним с количеством прочитанных символов,
cout<<line; //то выводим строку на печать
}
i++; //Увеличиваем счетчик
}
fin.close(); //Закрытие входного файла
getch();
}
Задача 4(№161)
Постановка задачи: В программе выполняются побитовые операторы и выводятся их результаты в виде десятичных и двоичных чисел.
Текст программы:
#include "stdafx.h"
#include <string.h>
typedef char Typei; // Typei целый тип
char*itobin (Typei n, char*s)
{
int i;
int size = sizeof(Typei)*8; // Размер целого типа в битах
Typei onebit =1; // Заполнение S двоичными цифрами, начиная с последней
for (i=0; i<size; i++, onebit <<=1)
s[i]= n& onebit ? '1':'0';
s[i]='\0';
strrev(s);
return s;
}
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char s[33]; // Массив для дфоичных цифр
cout <<"\nPa6ota s 6ezznakovimi \n";
unsigned char p =100,q=200,sum,diff,q1;
cout <<"p="<< int(p)<<"="<<itobin(p,s)<<endl;
cout <<"q="<< int(q)<<"="<<itobin(q,s)<<endl;
sum=p+q;diff=p-q;
cout <<"p+q="<<int(sum)<<",p-q="<<int(diff)<<endl;
q1=q>>2;3;
cout << "q>>2="<<int(q1)<<"="<<itobin(q1,s)<<endl;
cout<<"Pa6ota so znakovimi \n";
char z=127,z1=z+1;
cout<<"z="<<int(z)<<"="<<itobin(z,s);
cout<<",z+1="<<int(z1)<<"="<<itobin(z1,s)<<endl;
char x=-59,y;
cout<<"x="<<int(x)<<"="<<itobin(x,s)<<endl;
y=x | 017;
cout<<"x | 017 ="<<int(y)<<"="<<itobin(y,s)<<endl;
y= x&017;
cout<<"x$017 ="<<int(y)<<"="<<itobin(y,s)<<endl;
y=x^017;
cout<<"x^017 ="<<int(y)<<"="<<itobin(y,s)<<endl;
y=~x;
cout<<"~x ="<<int(y)<<"="<<itobin(y,s)<<endl;
y=x<<2;
cout<<"x<<2 ="<<int(y)<<"="<<itobin(y,s)<<endl;
y=x>>2;
cout<<"x>>2 ="<<int(y)<<"="<<itobin(y,s)<<endl;
getch();
return 0;
}