Показать сообщение отдельно
Старый 28.01.2010, 18:03   #1 (permalink)
citrus
Member
 
Регистрация: 29.09.2009
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль. Задачи на строки

"Задан строковый массив. Каждая строка содержит информацию о сотруднике фирмы и имеет след структуру: фамилия пол з/п должность.
Вывести в алфавитном порядке всех мужчин, з/п которых выше средней."

Я вот написал пока что процедуры ввода/вывода и процедуру сортировки мужчин. Теперь, как мне сказали, нужно написать функцию выделения из строки з/п. Затем нужно как-то применять эту функцию к всему массиву и выбирать те, что больше средней.. Помогите, пожалуйста, написать эти функции.

Вот, что я пока что сделал:

Код:
Program ZP;
uses crt;
Type MAS=array[1..15] of string;
Var A,B:MAS;
    N:byte;
    y:real;

 Procedure Vvod(var x:MAS;N:byte);
  Var i:byte;
     s:string;
 begin
 For i:=1 to N do
 begin
 Writeln ('Vvedite imy');
 Readln (x[i]);
 Writeln ('Vvidite pol:m ili j');
 Readln (s);
  x[i]:=x[i]+' '+s;
 Writeln ('Vvedite z/p');
 Readln (s);
  x[i]:=x[i]+' '+s;
 Writeln ('Vvedite dolzhnost');
 readln (s);
  x[i]:=x[i]+' '+s;
 end;
 end;

 Procedure Vivod (var x:MAS; N:byte);
 Var i:byte;
 begin
 For i:=1 to N do
 begin
 Writeln (x[i]:20);
 end;
 Writeln;
 Readln;
 end;

Procedure M(var x:MAS; N:byte);
     var i,p:byte;
         s,dub:string;
         Fl:boolean;
     begin
If s='m'then
begin
     Fl:=true;
While Fl do
     begin
     Fl:=false;
For i:=1 to N do
If x[i]>x[i+1] then
     begin
     Fl:=true;
     dub:=x[i];
     x[i]:=x[i+1];
     x[i+1]:=dub;
    end;
    end;
    end;
    end;


Begin
clrscr;
Writeln('vvedite kol-vo rabotnikov');
readln(N);
vvod(A,N);
vivod(A,N);
M(A,N);
vivod (A,N);
end.
citrus вне форума  
Ads

Яндекс

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