IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> заполнение полей массива через Rand(), C++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


Здравствуйте.
значит есть у меня структура... а ней описаны номер, название, цена и вес препарата.
#include <stdio.h> 
#include <string.h>

const nbofstmax=1000;
int nbofst=10;
class apteka
{
public:
int number;
char name[15];
int price;
float weight;
apteka (int numb, char prep[15], int price0, float wght0)
{
number=numb;
strcpy(name, prep);
price=price0;
weight=wght0;
}

void printstud()
{
printf("%2d %-15s %3d %.2f\n", number, name, price, weight);
}

};


мне надо заменить код с инициализацией, через выбор случайного слова...

void initialize(apteka* stdar[])
{
stdar[0] = new apteka(1,"Analgin", 75, 180);
stdar[1] = new apteka(2,"Noshpa", 60, 285);
stdar[2] = new apteka(3,"Phalimint", 20, 176);
stdar[3] = new apteka(4,"Aspirin", 18, 187);
stdar[4] = new apteka(5,"Solpadein", 37, 300);
stdar[5] = new apteka(6,"Tabletki", 48, 179);
stdar[6] = new apteka(7,"Nazalvan", 67, 475);
stdar[7] = new apteka(8,"Vitamihi", 54, 107);
stdar[8] = new apteka(9,"Zelenka", 19, 171);
stdar[9] = new apteka(10,"Plastir", 76, 220);
printf("Database initialized successfully\n");
}


помогите написать функцию выбота случайного слова...
void GetWord ()
{
// Bu6op
retutn(char*)
}

for(i=0; i<10; i++)
{
stdar[i] = new apteka(i+1, GetWord(),rand()%100, rand()%250);
}


Сообщение отредактировано: volvo -


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Тебе нужна функция, которая будет выбирать случайное слово из какого-то массива данных, или генерировать какую-либо (бредовую, лишенную всякого смысла) последовательность случайной длинны, состоящую из латинских букв?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


генерировать какую-либо (бредовую, лишенную всякого смысла) последовательность случайной длинны, состоящую из латинских букв


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






char *GetWord ()
{
int sz = (rand() % 10) + 5;
char *s = new char[sz];
for(int i = 0; i < sz; i++) s[i] = (rand() % 26) + 'a';

s[sz] = '\0';
s[0] = toupper(s[0]);

return s;
}

int main() {

for(int i = 0; i < 5; ++i) {

char *s = GetWord();

puts(s);

delete s; // Не забывай освобождать память, иначе будут утечки ...

}
return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


заполнить поля массива из 10 aptek ...
...
(rand() % 10) + 5 -что оно делает?
toupper - если cисмвол -- лат. буква, то преобразовать cимвол к прописной букве... это точно оно? о.О


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
(rand() % 10) + 5 -что оно делает?
Генерирует случайное число в интервале от 5 до 14 (я почему-то подумала, что если будет пустая строка, длиной 0, это тебя может не устроить... Я не права?)

Цитата
toupper - если cисмвол -- лат. буква, то преобразовать cимвол к прописной букве... это точно оно?
Если верить документации, то да... Если не верить - зачем программировать?

Цитата
заполнить поля массива из 10 aptek ...
Ты сначала описание этого массива покажи, я не телепат чтобы предполагать, как он описан...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


массив... инициализируем мы его в GetWord() походу.
char n[10] = {Analgin, Noshpa, Phalimint, Aspirin, Solpadein, Tabletki, Plastir, Zelenka, Vitamini, Nazalvan};


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Однако, на вопрос, заданный в посте №2 ты ответила, что тебе нужно составлять свои слова, а не выбирать из готовых? Это как понимать?

Кстати, твой код, приведенный чуть выше не будет компилироваться. Что содержит массив? Символы? Строки? По типу вроде бы должны быть символы, тогда что такое Analgin?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


не знаю я.
я вообще не пойму чего от меня препод хочет. заменить void initialize ()... чтоб не прописывать кадждый эл-т отдельно, а выводить случайным словом... для этого надо вообще прописывать то что выводить потом.?
dry.gif


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Я показала, КАК делать случайную строку. ЧТО с ней делать потом - твое дело. Хочешь - удаляй, хочешь - передавай в конструктор класса...

Если же ты будешь случайно выбирать слова из заранее заданного массива - тебе придется еще позаботиться о том, чтобы не было повторно выбрано то же самое слово... Это усложнит программу...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


спасибо за помощ


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 1:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name