В таблице A [1: N] каждый элемент равен 0, 1 или 2. Переставить элементы массива, так чтобы сначала шли нули, потом - единицы, а затем - двойки (дополнительной таблицы не создавать)
Дааа, ну я вроде как бы знаю как создать таблицу. Правда какую именно нужно не знаю... Вообще не понятно условие заданы ... то ли
такую:
00000000
11111111
22222222
Или такую:
012
012
012
012
мда ... Кстати 1:N , Что это значит?
цикл тебе нужен For tu do и условие перестановки да давненько это было ... алгоритм запрограмировать сходу не смогу не помню, но на словах алгоритм следущий берем i,n - элемент масива сравниваем с i+1, n элементом массива если первый больше вторго переставляем, здачка по сути легкая но 12 лет назад такие решал потому язык позабыл если не найдешь ни кого обращайся рублей за 100 подниму паскаль .. хотя наверное найдешь
А зачем там раскидывать опять символы? Кстати сюда встав код, не порежет
Program zzz;
const n=100;
Var i,j,x:integer;
a:array[1..n] of byte;
begin
writeln;
randomize;
For i:=1 to n do
begin
a[i]:=random(3);
write(a[i]:2);
end;
For i:=1 to n-1 do
for j:=1 to n-i do
if a[j]>=a[j+1] then
begin
x:=a[j];
a[j]:=a[j+1];
a[j+1]:=x;
end;
writeln;
for i:=1 to n do
write(a[i]:2);
end.
Добавлено спустя 02 минуты 10 секунд
А зачем там пустой writeln ??? И если уж так пошло, можно сделать чтобы самому вводить N ? в смысле readln(N) ?
пустой writeln что бы отделить исходный массив от полученного пустой строкой, да можно с клавы ввести N
Можешь объяснить как работает код?
a[i]:=random(3);
write(a[i]:2);
эти строчки что делают?
randomize; и это что?
randomize - это слово вкл генератор случайных чисел...
a[i]:=random(3); - мы присваиваем элементу массива a[i] рандомное значение от 0 до 2
write(a[i]:2); - соответственно выводим эл массива, а цифра два это пространство отведенное для вывода числа(обычно это делается, чтобы элементы находились друг под другом)
соответственно выводим эл массива, а цифра два это пространство отведенное для вывода числа(обычно это делается, чтобы элементы находились друг под другом)
Понятно, что вот поставили 2 проблема после каждой цифры . А как можно чтобы ввод шел из клавиатуры ?
И еще вот этот код объясни плз:
For i:=1 to n-1 do
for j:=1 to n-i do
if a[j]>=a[j+1] then
begin
x:=a[j];
a[j]:=a[j+1];
a[j+1]:=x;
Мы просто проходим массив и еслиa a[j] то быдет по убыванию...
Ок, помоги еще 1 задачку решить :)
Даный некоторый текст. Группы символов, разделенные пробелами (пропусками) и не содержат внутри пробелов, назовем словами. Будем считать, что текст всегда начинается со слова. Определить количество слов, которые начинаются с буквы "а" или "А".