Методичні вазівки
Одновимірний масив.
Заповнити масив з 20 елементів цілими випадковими числами в діапазоні від 5 до 20. Знайти серед них максимальне число і його номер в масиві.
#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h" //библиотека для використання функції генерування //случайных чисел
int main(int argc, char* argv[])
{
int m[20]; //описываем масив з 20 елементів
for (int n=0;n<20;n++)
{
m[n]=rand()%16+5; //в циклі заповнюємо випадковими числами від 5 до 20
//алгоритм генерирования случайных целых чисел
cout<<m[n]<<"\t"; //сразу виводиться елементи масиву через табуляцію
}
int max=0,num; //описываем змінні для зберігання максимуму і його //номера
for(n=0;n<20;n++)
{
if(m[n]>max){max=m[n];num=n;}
//якщо поточний елемент масиву більше значення, //хранящегося в змінній max, то записати його значення в //max і його номері в num.
}
cout<<"Maximum raven "<<max<<", on nahoditsja v "<<num<<" yachejke\n";
//виводимо на екран максимум і номер осередку, в якому він //хранится
return 0;
}
Двовимірний масив
Матрицю розміром n*m заповнити нулями і вивести відрядковий на екран.
Потім всі елементи, в яких будь-який з індексів m або n парний, заповнити одиницями.
Алгоритм.
Для прикладу візьмемо матрицю 5*5:
а11 |
а12 |
а13 |
а14 |
а15 |
а21 |
а22 |
а23 |
а24 |
а25 |
а31 |
а32 |
а33 |
а34 |
а35 |
а41 |
а42 |
а43 |
а44 |
а45 |
а51 |
а52 |
а53 |
а54 |
а55 |
Як видимий, елементи, закрашені сірим, мають парний номер m або n (n – номер рядка, m – номер стовпця).
Тепер напишемо програму, яка перебирає по черзі всі елементи матриці, перевіряючи їх індекси на парність, і заповнює відповідні осередки одиницями. Необхідно пам'ятати, що нумерація осередків масиву в Сі починається з нуля, що потрібно враховувати, додаючи одиницю до номерів.
#include "stdafx.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
int const str=5;
int const col=5; //описали константи, що зберігають розмір матриці, щоб їх //можно було легко міняти в одному місці програми
int matr[str][col]; //описали двовимірний масив
for (int n=0;n<str;n++)
{
for(int m=0;m<col;m++) //описали два вкладені цикли для перебору елементів //матрицы відрядковий
{matr[n][m]=0;
cout<<matr[n][m]<<"\t";
//у внутрішньому циклі заповнюємо матрицю нулями і виводиться //на екран
}
cout<<"\n"; //закончив рядок, перекладається на нову і переходиться до //следующему кроку зовнішнього циклу
}
for ( n=0;n<str;n++)
for( int m=0;m<col;m++)
{
if ((m+1)%2==0||(n+1)%2==0) matr[n][m]=1;
//у новому циклі перевіряємо на парність номери осередків, якщо //один з них парний, записуємо в осередок одиницю
}
cout <<"new matr\n";
for (n=0;n<str;n++)
{
for(int m=0;m<col;m++) //выводим на екран змінену матрицю
{
cout<<matr[n][m]<<"\t";
}
cout<<"\n";
}
return 0;
}
С++ надає стандартний
датчик ЦІЛИХ рівномірно розподілених псевдовипадкових чисел: якщо ви хочете отримати ціле число з інтервалу [A..B], використовуйте
int x = A + rand() % (B+1-A);
