Написать программу в паскале: дана строка текста. слова в тексте друг от друга отделяются одним пробелом. удалить из строки все слова, начинающиеся и заканчивающиеся на "о".
function GetWord(s: string): string; // Возвращает очередное слово из строки s или пустое значение, // если в строке больше нет слов. // Перед вызовом позиция начала слова указывается переменной ptr. // Перед выходом ptr устаналивается на границу следующего слова // ptr=0 означает, что вся строка просмотрена. var n, p: integer; begin n := Length(s); if (ptr >= n) or (ptr=0) then begin ptr := 0; Result := '' end else begin p := PosEx(' ', s, ptr); if p > 0 then begin Result := Copy(s, ptr, p - ptr); ptr := p + 1 end else begin Result := Copy(s, ptr, n - ptr + 1); ptr := 0 end end end;
var s1, s2, s: string; n: integer;
begin writeln('Вводите строку'); readln(s1); ptr := 1; s2 := ''; repeat s := GetWord(s1); n := Length(s); if n > 0 then if (s[1] <> 'о') or (s[n] <> 'о') then s2 := s2 + s + ' ' until n = 0; n := Length(s2); if s2[n] = ' ' then s2 := Copy(s2, 1, n - 1); writeln('Результирующая строка: ', s2) end.
Тестовый прогон:
Вводите строку В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину. Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
1)program test; var a:array[1..12] of integer; i,min:integer; begin for i:=1 to 12 do begin readln(a[i]); a[i]:=abs(a[i]); if i=1 then min:=a[i] else if a[i]<min then min:=a[i]; end; writeln(min); end. 2) uses Crt ; var A : array [ 1 .. 100 ] of integer ; c : integer ; i , j , N : ShortInt ; begin ClrScr ; Write ( 'Количество элементов массива = ' ) ; ReadLn ( N ) ; WriteLn ( 'Ввод массива' ) ; for i := 1 to N do Read ( A [ i ] ) ;
A[i]:=abs(A[i]); WriteLn ; //Сортировка пузырьком// for i := 1 to N - 1 do begin for j := N downto i + 1 do begin if A [ j ] < A [ j - 1 ] then begin c := A [ j ] ; A [ j ] := A [ j - 1 ] ; A [ j - 1 ] := c ; end ;
Как то так, можешь заменить так что бы ракета вверх двигалась. Program raketa; uses graphabc; var i:integer; begin For i:=1 to 300 do begin line (i+300,60,i+240,120); line (i+240,120,i+240,360); line (i+360,120,i+360,360); line (i+240,360,i+360,360); line (i+300,60,i+360,120); line (i+240,210,i+210,240); line (i+210,240,i+240,240); line (i+360,210,i+390,240); line (i+390,240,i+360,240); circle (i+300,150,15); circle (i+300,210,15); circle (i+300,270,15); line (i+240,360,i+180,450); line (i+180,450,i+420,450); line (i+420,450,i+360,360); line (i+330,450,i+330,370); line (i+300,450,i+300,365); line (i+270,450,i+270,370); ClearWindow; end; end. end.
ptr: integer;
function GetWord(s: string): string;
// Возвращает очередное слово из строки s или пустое значение,
// если в строке больше нет слов.
// Перед вызовом позиция начала слова указывается переменной ptr.
// Перед выходом ptr устаналивается на границу следующего слова
// ptr=0 означает, что вся строка просмотрена.
var
n, p: integer;
begin
n := Length(s);
if (ptr >= n) or (ptr=0) then begin
ptr := 0;
Result := ''
end
else begin
p := PosEx(' ', s, ptr);
if p > 0 then begin
Result := Copy(s, ptr, p - ptr);
ptr := p + 1
end
else begin
Result := Copy(s, ptr, n - ptr + 1);
ptr := 0
end
end
end;
var
s1, s2, s: string;
n: integer;
begin
writeln('Вводите строку');
readln(s1);
ptr := 1;
s2 := '';
repeat
s := GetWord(s1);
n := Length(s);
if n > 0 then
if (s[1] <> 'о') or (s[n] <> 'о') then
s2 := s2 + s + ' '
until n = 0;
n := Length(s2);
if s2[n] = ' ' then
s2 := Copy(s2, 1, n - 1);
writeln('Результирующая строка: ', s2)
end.
Тестовый прогон:
Вводите строку
В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.