Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр 2 сем.docx
Скачиваний:
1
Добавлен:
22.09.2019
Размер:
66.76 Кб
Скачать

Задача 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;

}