Показать сообщение отдельно
Старый 28.03.2013, 03:10   #4 (permalink)
Léon
С# - learn or die
 
Аватар для Léon
 
Регистрация: 17.12.2011
Сообщений: 2,438
Записей в дневнике: 8
Сказал(а) спасибо: 21
Поблагодарили 49 раз(а) в 11 сообщениях
Репутация: 19701
По умолчанию

Цитата:
Сообщение от nice5531 Посмотреть сообщение
2. В заданном предложении найти самое короткое и самое длинное слова
Код:
uses crt;
const rz=[' ','.',',','?','!'];
var s,s1,s2,s3:string;
    sk,sd:string;
    k,d,i,ik,id,j,p:byte;
begin
clrscr;
writeln('Введите строку из слов, отделенных разделителями:');
readln(s);
i:=1;
d:=0;id:=1;{длина длинного слова и его начало в строке}
k:=255;ik:=1;{длина корткого слова и его начало в строке}
while i<=length(s) do
if not(s[i] in rz) then
begin
  s1:='';{будем составлять слово}
  j:=i;
  p:=0;
  while not(s[j] in rz)and(j<=length(s)) do
   begin
    s1:=s1+s[j];
    j:=j+1;
    p:=p+1;
   end;
  if length(s1)<k then{если меньше короткого}
   begin
    sk:=s1;{это короткое}
    k:=length(s1);{его длина}
    ik:=i;{начало в строке}
   end;
  if length(s1)>d then{то же с длинным}
   begin
    sd:=s1;
    d:=length(s1);
    id:=i;
   end;
  i:=i+p;
end
else i:=i+1;
writeln('Самое короткое слово ',sk);
writeln('Самое длинное слово ',sd);
if ik<id then{если короткое раньше}
begin
  insert(sk,s,id);{вставляем короткое перед длинным}
  delete(s,id+k,d);{удаляем длинное}
  insert(sd,s,ik);{вставляем длинное на старое место короткого}
  delete(s,ik+d,k);{удаляем короткое}
end
else{если длинное раньше, то все наоборот}
   begin
    insert(sd,s,ik);
    delete(s,ik+d,k);
    insert(sk,s,id);
    delete(s,id+k,d);
   end;
write(s);
readln
end.
Цитата:
Сообщение от nice5531 Посмотреть сообщение
4. Составьте программу меняющую местами элементы матрицы симметрично побочной диагонали
Код:
program matrix;
uses crt;
var n: BYTE;
    A: array[0..10, 0..10] of Integer;
    i, j: BYTE;
    num: Integer;
 
begin
    clrscr;
    writeln('Vvedite n');
    read(n);
    writeln('vvedite matricy');
    for i:= 0 to n-1 do begin
      for j:= 0 to n-1 do begin
        gotoxy((j+1)*5, 5+i);
        read(A[i, j]);
      end;
    end;
    for i:= 0 to n-1 do
      for j:= 0 to n-1 do
        if (j < n-i) then begin
            num:= A[i, j];
            A[i, j]:= A[n-j-1, n-i-1];
            A[n-j-1, n-i-1]:= num;
        end;
    for i:= 0 to n-1 do begin
      for j:= 0 to n-1 do begin
        gotoxy((j+1)*5, 7+i+n);
        write(A[i, j]);
      end;
    end;
    readkey;
end.
Léon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070