1. Написать функцию с именем Func_Min, которая вычисляет минимальное значение из двух заданных. У функции должно быть 2 вещественных параметра и она должна возвращать вещественное значение.
#include <iostream>
using namespace std;
double Func_Min(double a,double b){//Объявляем вспомогательную функцию с двумя веществеными параметрами а и b
double c; //Объявялем вспомогательную переменую, которая будет хранить минивальное значение
if(a<b) c= a; //Сравниваем а и b, присваиваем а переменой с, если а меньше b
else c= b; //иначе присваиваем с значение b
return c; //Возвращаем вещественное значение
};
int main(){
double a,b; //Объявляем переменные, которые будут сравниваться
cin>>a>>b; //вводим их
cout<<Func_Min(a,b); //обращаемся к функции Func_Min в выводе. Где после выполнения //вспомогательной функции
return 0; //будет значение минимального из двух чисел
}
2. Написать функцию с именем Func_Poryadok с тремя целыми параметрами и не возвращающую значение, которая упорядочивает переданные параметры по возрастанию значений.
#include <iostream>
#include <conio.h>
using namespace std;
void Func_Poryadok(int a,int b,int c){ //Объявляем вспомогательную функцию с тремя //целыми параметрами, не
//возвращающую значения (тип void)
int max,min,sr; //Объявялем вспомогательные переменные, которая будет хранить //мин, макс, среднее значения.
if(a>b) { //Сравниваем а с b. Если a>b значение a присваиваем переменной
max=a; //max, значение b переменной min.
min=b;
}
else { //Если a<b значение b присваиваем переменой max,
max=b; //а значение а переменной min.
min=a;
}
if(max<c){ //Если max < c то наш найденный ранее максимум есть среднее
sr=max; //значение из трех. Максимальным значением становится с.
max=c;
};
if(min>c){ //Аналогично проверяем действительно ли найденный минимум //является минимальным.
sr=min; //Т.е. если min < c значит ничего не меняем и наше значение //min есть минимальное из трех.
min=c;
}
cout<<min<<' '<<sr<<' '<<max;
};
int main(){
int a,b,c; //Объявляем переменные, которые будут сравниваться
cin>>a>>b>>c; //вводим их
Func_Poryadok(a,b,c); //Обращаемся к функции. Внимание! функция не возвращает //значения.
getch();
return 0;
}
3. С помощью цикла for вывести на экран числа 10, 12, 14, …, 20 в строчку через пробел.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=10;i<=20;i+=2) //В данном случае удобнее выводить значение параметра //i. Т.к. нужно вывести числа
cout<<i<<' '; //от 10 до 20, то начальным значением будет 10 а //конечным 20. изменение будет идти с шагом 2.
getch(); //после каждого вывода i пишем пробел, чтобы числа не //слиплись в одно число:)
return 0;
}
4. С помощью цикла while вывести на экран числа 100, 95, 90, …, 5 в строчку через запятую.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //Суть задачи состоит в том, что мы должны вывести равномерно убывающую //последовательность.
int a=100; //Это легко сделать с помощью одной переменой и ее изменения. //Объявляем и инициализируем а=100.
while(a>0){ //Пока а>0 выводим через запятую а, а затем уменьшаем а на 5. и так //пока а не станет 0.
cout<<a<<',';
a=a-5;
};
getch();
return 0;
}
5. С помощью цикла do while вывести на экран числа 113, 123, …, 193 в «столбик».
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //Данная задача практически полностью аналогична предыдущей. Разницу //заметите сами:)
int a=113;
do{
cout<<a<<endl; //Оператор cout<<endl; - переводит на новую строку.
a=a+10;
} while(a<=193);
getch();
return 0;
}
6. С помощью цикла for и оператора continue вывести все четные числа от 2 до 52.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=2;i<=52;i++){ //Сложность данной задачи заключается в знании того как
// работает цикл с параметром и continue.
if(i%2==0)cout<<i<<' '; //Скажем так: сontinue схож оператору break, разница в //том, что второй заканчивает цикл, а первый просто //заканчивает итерацию.
else continue;
};
Getch();
return 0;
}
7. Вывести на экран:
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=0;i<3;i++){
for(int j=0;j<5;j++)
cout<<5<<' ';
cout<<endl; //Данная строка отделяет строчки друг от друга, чтобы они не //слепились в одну и относится к циклу с i.
};
getch();
return 0;
}
8. Вывести на экран:
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
…
7 7 7 7 7 7 7 7 7 7
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=1;i<=7;i++){ //Заметим, что цифры каждой строки это номер данной строки.
for(int j=1;j<=10;j++) cout<<i<<' ';//Задача сводится к предыдущей.
cout<<endl;
};
getch();
return 0;
}
9. Вывести на экран:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=1;i<=4;i++){ //Заметим, что строка из цифр это номера столбцов данной строки.
for(int j=1;j<=5;j++) cout<<j<<' ';//Задача сводится к предыдущей.
cout<<endl;
};
getch();
return 0;
}
10. Вывести на экран:
5 6 7 8 9
5 6 7 8 9
5 6 7 8 9
5 6 7 8 9
5 6 7 8 9
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=1;i<=5;i++){ //Заметим, что строка из цифр это номер столбца+4.
for(int j=1;j<=5;j++) cout<<j+4<<' ';//Задача сводится к предыдущей.
cout<<endl;
};
getch();
return 0;
}
11. Вывести на экран:
0
0 0
0 0 0
0 0 0 0
0 0 0 0 0
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
for(int i=1;i<=5;i++){ //Заметим, что в строке количество 0 равно номеру //строки, получаем что
for(int j=1;j<=i;j++) cout<<0<<' ';//j пробегает от 1 до номера строки.
cout<<endl;
};
getch();
return 0;
}
12. Рассчитать n!
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //Вспомним, что факториал это произведение номера элемента на предыдущий //элемент. Первый и нулевой элемент равны 1.
int a=1,n; //Объявим а, которое будет хранить значение предыдущего элемента. И //по умолчанию =1. Т.е. если мы введем количество
cin>>n; //элементов равное 0 или 1, то получим факториал 1, что истина. Далее //в цикле от 2 до n считаем факториал для
for(int i=2;i<=n;i++) //каждого элемента.
a=i*a;
cout<<a;
getch();
return 0;
}
13. Рассчитать 1+2+3+ …+n.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //данная задача аналогична предыдущей только разница в том, что мы не //умножаем номер элемента на пред., а складываем их
int a=1,n;
cin>>n;
for(int i=2;i<=n;i++)
a=i+a;
cout<<a;
getch();
return 0;
}
14. Рассчитать 3n.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //данная задача аналогична предыдущей только разница в том, что мы умножаем //3 на предыдущий элемент
int a=1,n; //3 в степени n можно представить как последовательность 3*3*3*...*3- //n- раз
cin>>n; //Т.е. используем цикл с параметром, а параметр i это как бы степень //в которую мы возвели 3.
for(int i=1;i<=n;i++)
a=a*3;
cout<<a;
getch();
return 0;
}
15. Объявить статический одномерный массив Data и инициализировать его числами 0,1,2,3,4.
#include <iostream>
using namespace std;
int main(){
int Data[]={0,1,2,3,4}; //я хз че тут пояснять...все очевидно, надо просто //знать синтаксис
return 0;
}
16. Объявить статический двумерный массив из 12 строк и 15 столбцов.,
#include <iostream>
using namespace std;
int main(){
int Data[12][15]; //эм....Ну в квадратных скобках указывается количество элементов..в данном случае сначала количество строк потом количество столбцов
return 0;
}
17. Объявлен массив float b[12]. Заполнить его числами 1.5, 2.5, …, 10.5.
#include <iostream>
using namespace std;
int main(){
float b[12];
float a=1.5; //ВНИМАНИЕ! В с++ целая часть од десятично отделяется //точкой! а не запятой
for(int i=0;i<10;i++){ //Меня больше всего смущает что чисел 10, а элементов //массива 12...
b[i]=a;
a=a+1;
}
return 0;
}
18. Объявлен массив float b[12]. Выведите элементы массива на экран в строчку через пробел.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
float b[12];
for(int i=0;i<12;i++){ //введем значения, чтобы мы могли их вывести..
cin>>b[i]; //Просто если оставить как раньше то получится бред
for(int i=0;i<12;i++){
cout<<b[i]<<' ';
}
getch();
return 0;
}
19. Объявлен массив float b[12]. Задать элементы массива значениями, введенными с клавиатуры.
#include <iostream>
using namespace std;
int main(){
float b[12];
for(int i=0;i<12;i++){ //Задача аналогична предыдущей. Только здесь мы вводим //элементы.
cin>>b[i];
}
return 0;
}
20. Объявить динамический одномерный массив Mas_Din из n вещественных элементов.
#include <iostream>
using namespace std;
int main(){
int n; //n - количество элементов...Остальное без комментариев)
cin>>n;
float *Mas_Din=new float[n];
return 0;
}
21. Удалить динамический одномерный массив Mas_Din из n вещественных элементов.
#include <iostream>
using namespace std;
int main(){
int n; //n - количество элементов...Остальное без комментариев)
cin>>n;
float *Mas_Din=new float[n];
delete []Mas_Din; //удаляем массив Mas_Din...
return 0;
}
22. Объявлен массив float b[12]. С помощью указателя float *p задать элементы массива значениями, введенными с клавиатуры.
#include <iostream>
using namespace std;
int main(){
float b[12]; //объявляем статический массив из 12 элементов
float *p=&b[0]; //устанавливаем указатель на начало массива
for(int i=0;i<12;i++){
cin>>*p++; //введенное значение сначала помещается в адрес указателя p,
//затем сдвиг указателя(т.е. перемещаемся к адресу след. //элемента).
};
return 0;
}
23. Объявлен массив float b[12]. С помощью указателя float *p вывести элементы массива на экран.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){ //задача аналогична предыдущей. Разница в операторе вывода.
float b[12]; //объявляем статический массив из 12 элементов
float *p=&b[0]; //устанавливаем указатель на начало массива
for(int i=0;i<12;i++)//Сначала введем элементы массива
cin>>*p++;
*p=&b[0]; //Обнуляем значение указателя на начало массива.
for(int i=0;i<12;i++){
cout>>*p++; //выводим значение помещенное в адрес указателя p,
//затем сдвиг указателя(т.е. перемещаемся к адресу след. //элемента). И та же проблема…Не понятно где брать элементы,
//которые будем выводить. Думаю надо уточнить на консультации.
//думаю лучше будет сначала ввести их. Что я и сделал в
//предыдущем цикле
};
getch();
return 0;
}
24. Объявить динамический двумерный массив Mas_Din_2 из 5 строк и 7 столбцов. (выделить необходимую память)
#include <iostream>
using namespace std;
int main(){
int n=5,m=7; //объявляем и инициализируем переменные, необходимые под размер
// матрицы n x m
int **Mas_Din_2=new int*[n]; //Объявляем массив указателей на указатели из n
//элементов
for(int i=0;i<n;i++) Mas_Din_2[i]=new int[m]; //i-тому элементу присваиваем динамический одномерный массив из m элементов
return 0;
}
25. Задать двумерный массив Маs_Din_2 (n строк, m столбцов) значениями с клавиатуры.
#include <iostream>
using namespace std;
int main(){
int n,m; //n x m -размер матрицы
cin>>n>>m;
int **Mas_Din_2=new int*[n]; //объявляем двумерный массив
for(int i=0;i<n;i++){ //продолжение...
Mas_Din_2[i]=new int[m];//продолжение...
for(int j=0;j<m;j++) //теперь в этом цикле задаем значения i-той строки.
cin>>Mas_Din_2[i][j];
};
return 0;
}
26. Вывести на экран элементы массива Маs_Din_2 (n строк, m столбцов) в виде матрицы.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int n,m; //n x m -размер матрицы
cin>>n>>m;
int **Mas_Din_2=new int*[n]; //объявляем двумерный массив
for(int i=0;i<n;i++){ //продолжение...
Mas_Din_2[i]=new int[m];//продолжение...
for(int j=0;j<m;j++){//теперь в этом цикле выводим значения i-той строки.
cin>>Mas_Din_2[i][j];
cout<<Mas_Din_2[i][j];
};
cout<<endl; //Переходим на след. строку
};
getch();
return 0;
}
27. Освободить память, выделенную под динамический массив Маs_Din_2 (n строк, m столбцов).
#include <iostream>
using namespace std;
int main(){ //В этой задаче я предпологаю что массив сначала нужно объявить а потом уже удалять...Блин ппц сколько некорректных задач хД
int n,m; //n x m -размер матрицы
cin>>n>>m;
int **Mas_Din_2=new int*[n]; //объявляем двумерный массив
for(int i=0;i<n;i++) //продолжение...
Mas_Din_2[i]=new int[m];//продолжение...
for(int i=0;i<n;i++) delete [] Mas_Din_2[i];
delete [] Mas_Din_2;
return 0;
}
28. Дан одномерный массив целых чисел a[10]. Удалить элемент с номером 4.
#include <iostream>
using namespace std;
int main(){ //Меня уже бесят такие задачи...Ладно будем вводить элементы с клавы.
int a[10];
for(int i=0;i<10;i++) cin>>a[i]; //вводим элементы массива с помозью цикла
for(int i=4;i<9;i++)a[i]=a[i+1]; //начиная с 4-ого элемента присваиваем данному
// элементу значение следущего. и так до //предпоследнего элемента.
//последний не берем, т.к. мы выйдем за границу массива
return 0;
}
29. Дан одномерный массив целых чисел a[10]. Вставить 0 после элемента с номером 4.
#include <iostream>
using namespace std;
int main(){
int n=10;
int a[n];
for(int i=0;i<n;i++) cin>>a[i];
for(int i=n;i>5;i--) a[i]=a[i-1]; //выполняем сдвиг элементов массива
a[5]=0; //элемент после 4 это 5, и именно ему мы присваиваем значение 0.
n++; // увеличиваем размерность массива
for(int i=0;i<n;i++) cout<<a[i]<<" "; // вывод элементов
return 0;
}
30. Создать файловый входной поток. Связать его с файлом intput.txt, в котором записано некоторое количество целых чисел. Открыть. Считать из него все числа и вывести на экран.
#include <iostream>
#include <conio.h>
#include <fstream> //Библиотека для работы с потоками
using namespace std;
int main(){
ifstream in("input.txt"); // открываем поток in и связываем его с файлом input.txt
int x; //Объявляем произвольную переменную.
while(in>>x) //Пока возможно читать из файла считываем в //переменную х
cout<<x<<' '; //выводим сразу же х
getch();
return 0;
}
31. Создать файловый выходной поток. Связать его с файлом output.txt. Записать в него числа 1, 2, …, 10.
#include <iostream>
#include <conio.h>
#include <fstream> //Библиотека для работы с потоками
using namespace std;
int main(){
ofstream out("output.txt"); // открываем выходной поток out и связываем его с
// файлом output.txt
for(int i=1;i<=10;i++)
out<<i<<' '; //выводим i в файл output.txt через поток out
getch();
return 0;
}
32. Написать функцию Print, выводящую на экран одномерный динамический массив, который она принимает в качестве параметра.
#include <iostream>
#include <conio.h>
using namespace std;
void Print(int *a,int n){ //Объявляем вспомогательную функцию Print которая не возвращает
// значения.
for(int i=0;i<n;i++) //В качестве параметра указатель на начало массива а, и
// количество элементов массива
cout<<a[i]<<' '; //в цикле выводим элеметы массива.
};
int main(){
int n;
cin>>n;
int *a=new int[n]; //объявляем массив и в цикле вводим его значения
for(int i=0;i<n;i++)
cin>>a[i];
Print(a,n); //Обращаемся к функции с массивом "а" в качестве параметра и //"n" - количество элементов
getch();
return 0;
}
33. Написать функцию Del, освобождающую память после динамического двумерного массива, который она получает в качестве параметра.
#include <iostream>
using namespace std;
void Del(int **a,int n){ //Очевидно что функция не должна возвращать значение:)
for(int i=0;i<n;i++) //в цикле удаляем каждый столбец.
delete [] a[i];
delete [] a; //и наконец удаляем оставшуюся часть массива
};
int main(){
int n;
cin>>n;
int **a=new int*[n]; //Объявляем и инициализируем двумерный динамический массив
for(int i=0;i<n;i++)
a[i]=new int[n];
Del(a,n); //Обращаемся к функции с массивом "а" в качестве параметра и "n" - //количество элементов
return 0;
}
34. Написать функцию Print_2, выводящую на экран двумерный динамический массив, который она принимает в качестве параметра.
#include <iostream>
#include <conio.h>
using namespace std;
void Print_2(int **a,int n){ //т.к. функция должна просто вывести массива, она будет типа
// void (не возвращающая значения)
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<a[i][j]<<' '; //выводим элементы i-той строки
cout<<endl; //Переходим на новую строку
};
};
int main(){
int n;
cin>>n;
int **a=new int*[n]; //Объявляем и инициализируем двумерный динамический массив
for(int i=0;i<n;i++){
a[i]=new int[n];
for(int j=0;j<n;j++) //вводим элементы i-той строки
cin>>a[i][j];
};
Print_2(a,n); //Обращаемся к функции с массивом "а" в качестве параметра и //"n" - количество элементов
getch();
return 0;
}