информатика 8 класс
А. Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-5;5] и находит сумму положительных элементов
B. Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-2;2] и находит произведение ненулевых элементов
С. Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100;1000] и находит отдельно сумму элементов в первой и во второй половинах массива
Ответы
Відповідь:
А. Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-5;5] и находит сумму положительных элементов
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 10 - 5;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
}
int sum(int *arr,const int size){
int sum = 0;
for(int i = 0; i < size; i++){
if(arr[i] > 0){
sum += arr[i];
}
}
return sum;
}
const int size = 10;
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int arr[size];
cout << "Массив: ";
randarr(arr,size);
printarr(arr,size);
cout << "\nСумма положительных елементов = " << sum(arr,size) << endl;
return 0;
}
B. Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [-2;2] и находит произведение ненулевых элементов
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 4 - 2;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
}
int mult(int *arr,const int size){
int multiplication = 1;
for(int i = 0; i < size; i++){
if(arr[i] != 0){
multiplication *= arr[i];
}
}
return multiplication;
}
const int size = 10;
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int arr[size];
cout << "Массив: ";
randarr(arr,size);
printarr(arr,size);
cout << "\nПроизведение ненулевых елементов = " << mult(arr,size) << endl;
return 0;
}
С. Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100;1000] и находит отдельно сумму элементов в первой и во второй половинах массива
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 1000 + 100;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
cout << arr[i] << " ";
}
}
void sum(int *arr,const int size){
int sum1 = 0,sum2 = 0;
for(int i = 0; i < 10; i++){
sum1 += arr[i];
}
for(int i = 10; i < size; i++){
sum2 += arr[i];
}
cout << "Сумма первой половины = " << sum1 << endl;
cout << "Сумма второй половины = " << sum2 << endl;
}
const int size = 20;
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Rus");
int arr[size];
cout << "Массив: ";
randarr(arr,size);
printarr(arr,size);
cout << endl;
sum(arr,size);
return 0;
}