(1)Составить программу, которая по введенному году и
номеру месяца определяет число дней в этом месяце.
#include<iostream>
#include<conio.h>
Using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
cout<<"\n\n\t\tENTER YEAR";
cin>>b;
cout<<"\n\n\t\tENTER NO OF MONTH";
cin>>a;
if(a==4||a==6||a==9||a==11)
cout<<"\n\n\t\t 30 days "<<endl<<endl;
else if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)
cout<<"\n\n\t\t 31 days "<<endl<<endl;
cout<<"\n\n\t\t 31 days "<<endl<<endl;
else if(a==2)
{
if(0==b%4)
cout<<"\n\n\t\t 29 days "<<endl<<endl;
else
cout<<"\n\n\t\t28 days "<<endl<<endl;
}
Else
cout<<"IMPOSSIABLE MONTH "<<endl<<endl;
_getch ();
return 0;
}
(2)Ввести с клавиатуры целое число, которое будет
являться количеством целых чисел во вводимой
последовательности. Определить максимальное среди
нечетных элементов последовательности.
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c,count=0,max=-32768;
cout <<"input of count num=";
cin >>a;
for (c=0;c<a;c++)
{
cin >>b;
if (b>max)
{
max=b;
}
if(b%2!=0)
{
count++;
}
}
cout <<"amount odd num="<<count<<endl;
cout <<"max num="<<max<<endl;
_getch();
return 0;
}
(3)Дано начальное значение =1 и рекуррентная формула
. Найти номер первого элемента, превысившего
введенное с клавиатуры число.
(3)Дано начальное значение =1 и рекуррентная формула
. Найти номер первого элемента, превысившего
введенное с клавиатуры число.
#include<iostream>
#include<conio.h>
using namespace std;
int _main(int argc, _TCHAR* argv[])
{
double n,a=1;
cout <<"enter the num"<<endl;
cin>>n;
while(a<n)
{
a=(a+2/a);
cout<<a<<' ';
}
cout<<"a\t"<<a<<endl;
_getch();
return 0;
}
(4)Методом деления отрезка пополам и
методом итераций найти приближенное
значение корня уравнения x5 – x – 0.2 = 0
на интервале [0.9,1.1]. Абсолютная
погрешность не превышает 0.0001.
Сравнить методы вычисления.
методом итераций найти приближенное
значение корня уравнения x5 – x – 0.2 = 0
на интервале [0.9,1.1]. Абсолютная
погрешность не превышает 0.0001.
Сравнить методы вычисления.
#include "stdafx.h"
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
float xt,xg=1.3,eps=0.001,x=5*eps;
int step=0;
while(fabs(x)>=eps)
{
xt=-0.2*(xg*xg*xg*xg+2*xg*xg*xg-xg-1)+xg;
x=xt-xg;
step++;
xg=xt;
}
cout<<"Root="<<xt<<"and receive in
step"<<step;
step"<<step;
getch();
return 0;
}
(5)В массиве из 20 целых чисел найти что больше -
среднее арифметическое значение положительных
среднее арифметическое значение положительных
элементов или модуль среднего арифметического
значения отрицательных элементов.
значения отрицательных элементов.
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i;
int i;
int arr[20] ;
int oddsum=0;
int oddcnt=0;
int oddavg=0;
int sum = 0 ;
int avg= 0 , cnt= 0 ;
for (int i=0; i < 20 ; i++)
{
arr[i] = rand()% 100 - 50 ;
cout << " " << arr[i];
if ( arr[i] > 0 )
{
sum = sum + arr[i] ;
cnt++;
}
else
{
oddsum = oddsum + arr[i] ;
oddcnt++;
}
}
cout << " \n\n\n sum of positive integer====> " << sum ;
cout << " \n\n\n count ====> " << cnt ;
avg= sum/cnt;
cout<<" \n\n\n evenaverage = sum / count= [ "<<avg;
cout << " \n\n\n sum of negative integer ====> " << oddsum ;
cout << " \n\n\n count ====> " << oddcnt ;
oddavg= oddsum/oddcnt;
cout << " \n\n\n oddaverage = sum / count = [ " << oddavg <<"
]" ;
_getch ();
return 0;
}
(5-2)Дана вещественная квадратная матрица 5х5. Получить новую
матрицу путем прибавления
к элементам каждой строки матрицы наибольшего значения элементов
этой строки.
#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include<time.h>
#include<conio.h>
using namespace std;
void owl(int mat[5][5]);
int ran(int z);
void soegyi(int mat[5][5]);
int _tmain(int argc, _TCHAR* argv[])
{
time_t t;
srand(time(&t));
int mat[5][5];
owl(mat);
getch();
}
/*..............................................................................*/
void owl(int mat[5][5])
{
int i,j,a=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
mat[i][j]=ran(a);
cout<<setw(3)<<mat[i][j]<<" ";
}
cout<<endl;
}
soegyi(mat);
}
/*..............................................................................*/
int ran(int z)
{
z=rand()%10;
return z;
}
/*...............................................................................*/
void soegyi(int mat[5][5])
{
int i,j,max=0,temp=0;
for(i=0;i<5;i++)
{
{
for(j=0;j<5;j++)
{
if(mat[i][j]>max)
{
max=mat[i][j];
temp=max;
}
}
for(j=0;j<5;j++)
{
mat[i][j]=mat[i][j]+temp;
}
}
max=0;
}
cout<<endl;
cout<<endl;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
cout<<setw(3)<<mat[i][j]<<" ";
}
cout<<endl;
}
}
(6)Дана строка символов и некоторый символ sym. Сформируйте
новую строку, вставив послекаждого вхождения символа sym
запятую. Определите самое длинное
слово в строке
#include "stdafx.h"
#include "iostream"
#include "string"
#include "stdio.h"
#include "conio.h"
#include <sstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string str;
string str1,str2;
string sym,rstr;
string ostr,temp[20];
int count=0;
cout<<"enter stirng: ";
cin>>str;
cout<<endl<<"Enter sym: ";
cin>>sym;
cout<<endl;
rstr=sym+",";
cout<<endl<<"ur str: "<<str;
cout<<endl<<"ur sym: "<<sym<<endl;
string::size_type pos = 0;
while ( (pos = str.find(sym, pos)) != string::npos )
#include "iostream"
#include "string"
#include "stdio.h"
#include "conio.h"
#include <sstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string str;
string str1,str2;
string sym,rstr;
string ostr,temp[20];
int count=0;
cout<<"enter stirng: ";
cin>>str;
cout<<endl<<"Enter sym: ";
cin>>sym;
cout<<endl;
rstr=sym+",";
cout<<endl<<"ur str: "<<str;
cout<<endl<<"ur sym: "<<sym<<endl;
string::size_type pos = 0;
while ( (pos = str.find(sym, pos)) != string::npos )
{
str.replace( pos, sym.size(), rstr );
pos++;
}
cout << endl<<"Now your string is: " << str << endl;
istringstream iss(str);
while(getline(iss, ostr, ','))
{
temp[count]=ostr;
//cout<<temp[count]<<" ";
count++;
}
ostr=temp[0];
for(int j=0;j<count;j++)
//for(int k=j+1;k<count;k++)
{
if(ostr.length()<temp[j].length())
ostr=temp[j];
}
cout<<endl<<"Longest string: "<<ostr;
getch();
}
}
ostr=temp[0];
for(int j=0;j<count;j++)
//for(int k=j+1;k<count;k++)
{
if(ostr.length()<temp[j].length())
ostr=temp[j];
}
cout<<endl<<"Longest string: "<<ostr;
getch();
}
(7)Сформировать массив, содержащий информацию об озерах.
Структурный тип содержит поля: название, соленое или пресное,
глубина, площадь, судоходное или нет, есть ли места для
отдыха, возможна ли рыбалка, замерзает ли зимой. Написать
программу, выдающую информацию:
- об озерах, где возможна зимняя рыбалка;
- об озерах, где до места отдыха можно добраться на теплоходе,
- по введенному с клавиатуры названию выдать всю информацию о
данном озере.
#include "stdafx.h"
#include<conio.h>
#include <string.h>
#include <iostream>
# include <iomanip>
using namespace std;
struct lake
{
char name[20];
char type[10];
float deep ;
int area;
char nav;
char place;
char fish;
char ice;
};
void main(void)
{
lake l[10];
int soe;
cout<<"How many lake do you want? : ";
cin>>soe;
for(int i=0; i<soe; i++)
{
cout<<"Name of lake: ";
cin>>setw(10)>>l[i].name;
cout<<"\nType of lake : ";
cin>>setw(10)>>l[i].type;
cout<<"\nDeep of lake : ";
cin>>l[i].deep;
cout<<"\nArea of lake : ";
cin>>l[i].area;
cout<<"\nNav of lake (y/n) : ";
cin>>l[i].nav;
cout<<"\nPlace for vacation (y/n) : ";
cin>>l[i].place;
cout<<"\nCan be finishing (y/n) : ";
cin>>l[i].fish;
cout<<"\n Freezing at winter (y/n) : ";
cin>>l[i].ice;
cout<<endl;
}
cout<<"The Lake you can be fishing is(are): "<<endl;
cout<<setw(10)<<"~Name~"<<setw(10)<<"~Type~"
<<setw(10)<<"~
Deep~"<<setw(10)<<"~Area~"<<setw(10)
<<"~Nav~"<<setw(10)<<"~Place~"<<setw(10)<<"~Fish~"
<<setw(10)<
<"~Ice~"<<endl<<endl;
for(int i=0;i<kol;i++)
if (l[i].fish=='y')
cout<<setw(10)<<l[i].name<<setw(10)<<l[i].type <<setw(10)
<<l[i].deep
<<setw(10)<<l[i].area <<setw(10)
<<l[i].nav<<setw(10) <<l[i].place <<setw(10)<<l[i].fish
<<setw(10)<<l[i].ice<<endl ;
cout<<"\nThe Lake you can rest at summer is(are): "<<endl;
cout<<setw(10)<<"~Name~"<<setw(10)<<"~Type~"
<<setw(10)<<"~
Deep~"<<setw(10)<<"~Area~"<<setw(10)
<<"~Nav~"<<setw(10)<<"~Place~"<<setw(10)<<"~Fish~"
<<setw(10)<
<"~Ice~"<<endl<<endl;
for(int i=0;i<kol;i++)
if(l[i].place=='y')
cout<<setw(10)<<l[i].name<<setw(10)<<l[i].type
<<setw(10)<<l[i].deep <<setw(10)<<l[i].area <<setw(10)
<<l[i].nav<<setw(10) <<l[i].place <<setw(10)<<l[i].fish
<<setw(10)<<l[i].ice<<endl ;
char a[20];
char again;
do {
cout<<"\n Enter lake name to search: ";
cin>>a;
cout<<"\nThe Lake's information you want: "<<endl;
cout<<setw(10)<<"~Name~"<<setw(10)<<"~Type~"
<<setw(10)<<"~
Deep~"<<setw(10)<<"~Area~"<<setw(10)
<<"~Nav~"<<setw(10)<<"~Place~"<<setw(10)<<"~Fish~"
<<setw(10)<
<"~Ice~"<<endl<<endl;
int check=0;
for(int i=0;i<kol;i++)
if (strcmp(a,l[i].name)==0)
{
cout<<setw(10)<<l[i].name<<setw(10)<<l[i].type <<setw(10)
<<l[i].deep
<<setw(10)<<l[i].area <<setw(10)
<<l[i].nav<<setw(10) <<l[i].place <<setw(10)<<l[i].fish
<<setw(10)<<l[i].ice<<endl ;
check=1;}
if(check==0)
cout<<"No information for such lake.\n";
cout<<"do you want to search gain (y/n)? ";
cin>>again;
}
while(again=='y');
_getch();
}
(8)-(1) Случайным образом создать таблицу пар целочисленных
значений и записать её в текстовый файл в виде:
X Y
5 25
15 3
2 7
-
Считать из файла пары значений и в тех из них, где X≤Y или
наоборот, найти сумму значений X и Y, а в тех, где X≥Y – разницу
значений X и Y. Результат записать в другой текстовый файл в виде
X Y RES
5 25 30
15 3 12
2 7 9
#include <stdafx.h>
#include<iostream>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
#include<iomanip>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
time_t t;
srand (time(&t));
FILE *f , *g, *h,*ff,*hh;
int i,n,o,p;
int sum=0;
f=fopen("7.txt","w");
ff=fopen("7.txt","r");
g=fopen("7.txt","r");
h=fopen("7ans.txt","w");
hh=fopen("7ans.txt","r");
fprintf(f,"%3s %3s\n","X","Y");
//fprintf(f,"%s",'\n');
for (i=0;i<10;i++)
{
//cout.flush ();
fprintf(f,"%3d%3d\n",rand()%20+1,rand()%20+1);
}
fclose(f);
char buffer[100],v[3],b[3];
int count=0;
while (count<11)//((fgets(buffer,100,ff)) != NULL)
{
if(count==0)
{
fscanf(g,"%3s %3s\n",&v,&b);
fprintf(h,"%3s %3s %5s\n","X","Y","RES");
cout<<"reading:"<<setw(3)<<"X"<<setw(3)<<"Y"<<endl;
}
else
{
fscanf(g,"%3d %3d\n",&o,&p);
cout<<"reading:"<<setw(3)<<o<<setw(3)<<p<<endl;
if (o<p)
sum =o+p;
else
sum=o-p;
fprintf(h,"%3d %3d %5d\n",o,p,sum);
}
count++;
}
fclose(g);
fclose(ff);
fclose(h);
count=0;
char c[7];
while (count<11)//((fgets(buffer,100,ff)) != NULL)
{
if(count==0)
{
fscanf(hh,"%3s %3s %5s\n",&v,&b,&c);
//fprintf(h,"%3s %3s %5s\n","X","Y","RES");
cout<<"\n\nReadingres:"<<setw(3)<<"X"<<setw(3)<<"Y"<<setw(5)
<RES"<<endl;
}
else
{
fscanf(hh,"%3d %3d %5d\n",&o,&p,&sum);
cout<<"Readingres"<<setw(3)<<o<<setw(3)<<p<<setw(5)
<<sum<<endl;
}
count++;
}
fclose(hh);
getch();
return 0;
}
заменить элементы, меньшие среднего
арифметического значения, на 0, а большие среднего
арифметического значения – на 1.
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <time.h>
using namespace std;
void main(int argc, _TCHAR* argv[])
{
FILE *f_test,*g;
time_t t;
srand(time(&t));
int i_min,i_max;
int handle;
int value,var,min,max=0;
int zero=0;
f_test = fopen("soethu.dat","w+b");
g = fopen("result.dat","w+b");
if (!f_test)
{
puts( "Can not open files!\n" );
exit(1);
}
cout<<"\n Interger values: "<<endl;
for(int i=0;i<10;i++)
{
value=rand()%10+1;
cout<<value<<"\t";
fwrite(&value,sizeof(int),1,f_test);
}
fclose(f_test);
/*........................................................................*/
f_test = fopen("soethu.dat","r+b");
i_max=0;
max=0;
for(int i=0;i<10;i++)
{
fread(&value,sizeof(int),1,f_test);
{
max+=value;
}
}
i_max=max/10;
cout<<"\nmax: "<<max<<" avg: "<<i_max<<endl;
fclose(f_test);
/*...............................................................................................................*/
f_test = fopen("soethu.dat","r+b");
int zeroo=0;
int onee = 1;
for(int i=0;i<10;i++)
{
fread(&var,sizeof(int),1,f_test);
if (var<i_max)
{
fwrite(&zeroo,sizeof(int),1,g);
}
else
fwrite(&onee,sizeof(int),1,g);
}
fclose(f_test);
fclose(g);
f_test = fopen("result.dat","r+b");
cout<<"\n Result: "<<endl;
for(int i=0;i<10;i++)
{
fread(&var,sizeof(int),1,f_test);
cout<<var<<"\t";
}
getch();
}
(7)-(2)Создать двоичный файл из случайно заданных значений целого
типа. Удалить из него все числа, кратные введенному с клавиатуры
числу. Результат записать в другой файл.
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<io.h>
#include<stdlib.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
FILE *f_oop,*f_out;
int number,x;
time_t t;
srand(time_t(&t));
/*.............................................................................................................................................*/
f_oop=fopen("yargyi.dat","wb");
cout<<"\n Original file: "<<endl;
if(!f_oop)
{
puts("File not created!");
exit(1);
}
for(int i=0;i<10;i++)
{
number=rand()%20+1;
fwrite(&number,sizeof(int),1,f_oop);
cout<<number<<"\t";
}
fclose(f_oop);
/*..............................................................................................................................................*/
f_out=fopen("answer.dat","wb");
if(!f_out)
{
puts("File not created!");
exit(1);
}
int kk=0;
printf("\nx= ");
scanf("%d",&x);
f_oop=fopen("yargyi.dat","rb");
cout<<"\n answer file: "<<endl;
for(int i=0;i<10;i++)
{
fread(&number,sizeof(int),1,f_oop);
if((number%x)==0 || x%number==0)
{
fwrite(&number,sizeof(int),1,f_out);
cout<<number<<"\t";
kk=1;
}
}
if(kk==0)
cout<<"\n There is no data for ur multiplier:
"<<x<<endl;
cout<<endl;
fclose(f_oop);
fclose(f_out);
/*.................................................................................................................................................*/
_getch();
return 0;
}