C
chagin_yav
Приветствую!
(среда borland c++ 3.1)
Такая задача:
С помощью ПСП (псевдослучайной последовательности) сформировать двухмерный массив. А в качестве элементов этого массива использовать одномерный массив из l символов. Причём одномерный массив из l символов должен представлять из себя слово заданной длины l с меняющимися символами и длиной(незаполненные позиции в зависимости от длины слова заполняются пробелами).
Например:
array[m][n]
word[l]
(m,n,l -константы)
Массив array[m][n] это нечто вроде таблицы с заданным числом строк столбцов, m,n, соответственно.
Массив word[l] это слово - 1 ячейка массива array[m][n]
Т.е. в результате на выводе должно получится что-то вроде:
(допустим 2-мерный массив 6x3 и одномерный =5)
***__ ***__ ****_
**___ ****_ ***__
***__ **___ ****_
****_ ****_ **___
*____ *____ ****_
****_ ****_ ***_
Здесь "*" - случайный символ от A до Z
"_" - пробел
ТО есть в данном случае должна получиться таблица из 6 строк, 3 столбцов, ячейка длиной 5 символов. Ячейка заполнена на случайное количество случайных символов.
А это моя попытка:
Это попытка конечно же не удачная, пожалуйста посодейтсвуйте 1-курснику.
С уважением, Ярослав.
(среда borland c++ 3.1)
Такая задача:
С помощью ПСП (псевдослучайной последовательности) сформировать двухмерный массив. А в качестве элементов этого массива использовать одномерный массив из l символов. Причём одномерный массив из l символов должен представлять из себя слово заданной длины l с меняющимися символами и длиной(незаполненные позиции в зависимости от длины слова заполняются пробелами).
Например:
array[m][n]
word[l]
(m,n,l -константы)
Массив array[m][n] это нечто вроде таблицы с заданным числом строк столбцов, m,n, соответственно.
Массив word[l] это слово - 1 ячейка массива array[m][n]
Т.е. в результате на выводе должно получится что-то вроде:
(допустим 2-мерный массив 6x3 и одномерный =5)
***__ ***__ ****_
**___ ****_ ***__
***__ **___ ****_
****_ ****_ **___
*____ *____ ****_
****_ ****_ ***_
Здесь "*" - случайный символ от A до Z
"_" - пробел
ТО есть в данном случае должна получиться таблица из 6 строк, 3 столбцов, ячейка длиной 5 символов. Ячейка заполнена на случайное количество случайных символов.
А это моя попытка:
Код:
#include <conio.h>
#include <iostream.h>
#include <math.h>
#define k 2 //минимальная длина слова (ячейки)
#define l 7 //максимальная длина слова (ячейки)
#define m 20 //строки
#define n 10 //столбцы
int rand_size(int max, int min); //объявление функции, возвращающей //случайное целое чило с заданным диапазоном
void main()
{
char
array[m][n],
word[l];
int
i1,i2,i3,x;
randomize();
clrscr();
//Заполняем массив
for (i1=0;i1<m;i1++)
{
for (i2=0;i2<n;i2++)
{
x=rand_size(l,k); //возвращаем случайную длину слова
//от 2(k) до 7(l)
for (i3=0;i3<l;i3++)
{
if (i3<x) //если слово не заполнено по длине
{
word[i3]=(char)(random(26)+65);
array[i1][i2]=word[i3];
}
else //иначе заполняем остаток слова пробелами
{
word[i3]=(char)(32);
array[i1][i2]=word[i3];
}
}
}
}
//пытаемся вывести тепрь на экран таблицу из 20 строк, 10 столбцов
//заполненную словами длиной от 2 до 7 случайных символов.
for (i1=0;i1<m;i1++)
{
for (i2=0;i2<n;i2++)
{
cout<<array[i1][i2]<<" ";
}
cout<<endl;
}
getch();
}
//Функция возвращает случайное число с заданным диапазоном
int rand_size(int max, int min)
{
int
size;
label_1:
size=random(max+1);
if ((size>=min)&&(size<=max))
{
return size;
}
else
{
goto label_1;
}
}
Это попытка конечно же не удачная, пожалуйста посодейтсвуйте 1-курснику.
С уважением, Ярослав.