СОРТИРОВКА ЭЛЕМЕНТОВ МАССИВОВ 1. Создать произвольный целочисленный массив данных размером 10 элементов. Элементами массива являются произвольные положительные и отрицательные целые числа в диапазоне от -10 до 17.
2. Провести сортировку массива и сформировать два других массива по признаку «положительные – отрицательные» числа.
3. Вывести на печать в разные строки исходный массив, сформированный массив положительных чисел и сформированный массив отрицательных чисел.
Dev C++
Главная проблема - то, что между словами может быть несколько пробелов.
Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:
function RemoveSpaces(str : string) : string;
begin
//Тут цикл for, переписанный через while
var iter := 1;
//Проходим по строке
while (iter < str.Length) do
begin
//Если видим 2 пробела подряд, удаляем 1 и откатывает итератор.
if (str[iter] = ' ') and (str[iter + 1] = ' ') then
begin
str := str.Remove(iter, 1);
iter -= 1;
end;
iter += 1;
end;
RemoveSpaces := str;
end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer;
begin
CalcWords := RemoveSpaces(str).Split(' ').Count();
end;
Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.
полный код: https://pastebin.com/A63ggdWm
Алгоритм выглядит таким образом:
ввести x, y;
если x>y то
s:=(x*y)*2;
иначе
s:=(x+y)/2;
вывод s
конец. (блок-схема прилагается в скриншоте 1)
На паскале выглядит примерно так:
var
x, y, s:real;
begin
readln(x,y);
if x>y then
s:=(x*y)*2;
else
s:=(x+y)/2;
writeln(s:2:2);
end.
ответ на 2 задачу
Тут идентичный алгоритм: вводим 2 переменные x, y, далее создаем условие и возводим в модуль... (скриншот 2 с блок-схемой)
ответ на 3 задачу
Тут тоже.. в условии указываешь просто a<b<c, если условие верно, то выводишь "Верно", иначе "Не верно".
На паскале выглядит примерно так:
var
a, b, c:integer; {если число вещественное}
begin
readln(a, b, c);
if (a<b<c) then
writeln("Верно");
else
writeln("Неверно");
end.
ответ на 4 задачу
На паскале:
var
a, b, c, max:integer;
begin
max:=0;
readln(a,b,c);
if max<a then
max:=a;
if max<b then
max:=b;
if max<c then
max:=c;
writeln(max);
end.
ответ на 5 вопрос
На паскале:
Var
a,b,c:integer;
begin
readln(a,b,c);
if (a<0) then
a:=a*a;
writeln(a);
if (b<0) then
b:=b*b;
writeln(b);
if (c<0) then
c:=c*c;
writeln(c);
end.
Удачи!