Другие языки программирования и технологии
В двух массивах строковых констант хранятся слова:существительные и глаголы. Составте программу, которая выводит:
(продолжение вопроса)ПАРЫ ЭТИХ СОВ СЛУЧАЙНЫМ ОБРАЗОМ. 1-й массив: ученик, артист, художник, рыба, птица, кошка, собака, корова. 2-й массив:читает, поёт, рисует, плавает, летает, мяукает, лает, мычит. Если можно и пояснить что и для чего, а то я потеме отстал....
Вот так:
const
N = 8; { количество слов в каждом массиве }
L = 8; { максимальная длина одного слова }
S : array [1..N] of String[L] =
('ученик', 'артист', 'художник', 'рыба', 'птица', 'кошка', 'собака', 'корова');
G : array [1..N] of String[L] =
('читает', 'поёт', 'рисует', 'плавает', 'летает', 'мяукает', 'лает', 'мычит');
var
Nom : Byte;
begin
Randomize;
for Nom := 1 to N do
WriteLn(S[Nom], ' ', G[Random(N) + 1]);
end.
Но вот так интереснее:
Здесь глагол не повторяется. Для этого заведён дополнительный массив NoShow, в котором в 0 ячейке хранится количество, а с 1 - номера ещё не показанные глаголы.
const
N = 8; { количество слов в каждом массиве }
L = 8; { максимальная длина одного слова }
S : array [1..N] of String[L] =
('ученик', 'артист', 'художник', 'рыба', 'птица', 'кошка', 'собака', 'корова');
G : array [1..N] of String[L] =
('читает', 'поёт', 'рисует', 'плавает', 'летает', 'мяукает', 'лает', 'мычит');
var
Nom, NomS, NomG : Byte;
NoShow : array [0..N] of Byte;
begin
for Nom := 1 to N do NoShow[Nom] := Nom; NoShow[0] := N;
Randomize;
for NomS := 1 to N do
begin
NomG := Random(NoShow[0]) + 1;
WriteLn(S[NomS], ' ', G[NoShow[NomG]]);
Dec(NoShow[0]);
for Nom := NomG to NoShow[0] do
NoShow[Nom] := NoShow[Nom + 1];
end;
end.
const
N = 8; { количество слов в каждом массиве }
L = 8; { максимальная длина одного слова }
S : array [1..N] of String[L] =
('ученик', 'артист', 'художник', 'рыба', 'птица', 'кошка', 'собака', 'корова');
G : array [1..N] of String[L] =
('читает', 'поёт', 'рисует', 'плавает', 'летает', 'мяукает', 'лает', 'мычит');
var
Nom : Byte;
begin
Randomize;
for Nom := 1 to N do
WriteLn(S[Nom], ' ', G[Random(N) + 1]);
end.
Но вот так интереснее:
Здесь глагол не повторяется. Для этого заведён дополнительный массив NoShow, в котором в 0 ячейке хранится количество, а с 1 - номера ещё не показанные глаголы.
const
N = 8; { количество слов в каждом массиве }
L = 8; { максимальная длина одного слова }
S : array [1..N] of String[L] =
('ученик', 'артист', 'художник', 'рыба', 'птица', 'кошка', 'собака', 'корова');
G : array [1..N] of String[L] =
('читает', 'поёт', 'рисует', 'плавает', 'летает', 'мяукает', 'лает', 'мычит');
var
Nom, NomS, NomG : Byte;
NoShow : array [0..N] of Byte;
begin
for Nom := 1 to N do NoShow[Nom] := Nom; NoShow[0] := N;
Randomize;
for NomS := 1 to N do
begin
NomG := Random(NoShow[0]) + 1;
WriteLn(S[NomS], ' ', G[NoShow[NomG]]);
Dec(NoShow[0]);
for Nom := NomG to NoShow[0] do
NoShow[Nom] := NoShow[Nom + 1];
end;
end.
Похожие вопросы
- C++(консоль) Программа, которая выводит данные треугольников со стороной максимум 5000
- написать программу которая выводит на экран оцифрованную координатную сетку!Нужно решение через Турбо Паскаль!
- C++ Помогите написать программу, которая выводит первые n простых чисел.
- Существует ли программа которая выводит допустим все 4-х значные числа или 5 значные?
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.
- Напишите программу, которая выводит запись переданного ей числа в римской системе счисления. Используйте процедуру. С++
- Напишите программу, которая выводит на экран все делители числа N, (число N вводится с клавиатуры) абсПАСКАЛЬ ПОМОГИТЕ
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- нужно создать на паскале программу которая будет находить повторяющиеся слова в массиве
- Написать программу, которая формирует два массива чисел