Не такое оно и сложное. Главная проблема - то, что между словами может быть несколько пробелов. Устраним её, написав функцию, которая оставляла бы между словами по 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;
Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.
ответ на 1 задачу Алгоритм выглядит таким образом: ввести 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);
следовательно, объем памяти равен 1073741824 байт или 1048576 кбайт или 1024 мбайт