Текстовый файл. Найти наибольшее значение компонентов и дописать его в конец файла

Svetasokolova

1) Создать текстовый файл f, компоненты которого являются вещественными числами.Найти наибольшее значение компонентов и дописать его в конец файла. 2. Создать текстовый файл, введение из клавиатуры.Определить в каждой парной строке слово наибольшей длины и записать это слово на начало следующей непарной строки.3.Даний файл f,що содержит сведения о веществах : указывается название вещества, его вес и проводимость (проводник, полупроводник, изолятор), .Знайти вес и названия всех полупроводников. Найденные данные записать в файл g.Надо сделать с процедурами. Пожалуйста помогите.
1 ответ

Svetasokolova

Вот на 2 первые вопроса.
const MyFile='d:\1.txt';
        MyFile1='d:\2.txt'; //ГЌГ*ГёГЁ ГґГ*éëû äëÿ ïåðâîãî ГЁ âòîðîãî Г§Г*Г¤Г*Г*ГЁГї
 
   Var F:Text;            //ГђГ*áîòГ*ГҐГ¬ Г± òåêñòîâûì ГґГ*éëîì
       i,j:Integer;       //Ñ÷åò÷èê öèêëîâ ГЁ ñëó÷Г*Г©Г*Г*Гї ïåðåìåГ*Г*Г*Гї
       S:String;          //ГЌГ*ГёГЁ ñòðîêè
       MaxDlina:String;  //Ñëîâî Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îé äëèГ*Г»
           var Vibor:byte;  //ÏåðåìåГ*Г*Г*Гї äëÿ ìåГ*Гѕ
 
 
     {==================================================}
     {ÏðîöåäóðГ* äëÿ âòîðîãî âîïðîñГ*. Èùåò Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îå ñëîâî Гў ñòðîêå}
    procedure Vopros2_PoiskMaksSlova(Str:String;k:Integer);
    const
  dividers=[' ',',','.',';',':','-','=','+'];    //ГђГ*çäåëèòåëè ñòðîêè
var
 i:integer;
 max,temp:string;
begin
 begin
 
  temp:='';
  max:='';
  {ïðîáåãГ*ГҐГ¬ ГўГ±Гѕ ñòðîêó ïîñèìâîëüГ*Г®}
  for i:=1 to length(str) do
    begin
      if not (str[i] in dividers) then
        temp:=temp+str[i];
      if (str[i] in dividers) or (i=length(str)) then
        if temp<>'' then
        begin
          if length(temp)>length(max) then
            max:=temp;
          temp:='';
        end;
    end;
  end;
//  writeln('Ñëîâî Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îé äëèГ*Г»: ',max,'.',k+1);
  MaxDlina:=Max; //Г‡Г*ïîìèГ*Г*ГҐГ¬ ñëîâî Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îé äëèГ*Г» Гў ГЇГ*ìÿòü
  end;
 
    {ГЌГ*Г·Г*ëî îáðГ*áîòêè âòîðîãî âîïðîñГ*}
    procedure Vopros2;
      var Strok:Integer;  //Êîëè÷åñòâî ñòðîê, îòîðîå ðåøèò ГўГўГҐГ±ГІГЁ þçåð
          temp:String;    //Г‡Г*ïîìèГ*Г*ГҐГ¬ ïðåäûäóùåå ñëîâî Г±ГѕГ¤Г*
    Begin
        writeln('Skolko strok wwodit  ');
        readln(strok);
 
        Assign(F,MyFile1);Rewrite(F);Close(F); //ÑòèðГ*ГҐГ¬ ГґГ*éë åñëè ГҐГ±ГІГј èëè ñîçäГ*ГҐГ¬ Г*îâûé åñëè Г*ГҐГІГі
        Assign(F,MyFile1); //Ïîëó÷Г*ГҐГ¬ äîñòóï ГЄ ГґГ*éëó
          Append(F);   //Áóäåì Г§Г*ïèñûâГ*ГІГј Гў ГЄГ®Г*ГҐГ¶ ñòðîêè
             for i:=1 to strok do begin  //Г‡Г*ïèñûâГ*ГҐГ¬ Гў ГґГ*éë ñòîëüêî ñòðîê, ñêîëüêî Г±ГЄГ*Г§Г*Г« þçåð
               writeln;
               write('wwedi stroku ',i,':  ');
               readln(S);   //Ñ÷èòûâГ*ГҐГ¬ ñòðîêó, êîòîðóþ ГўГўГҐГ« þçåð
               if i mod 2 = 0 then Begin //Åñëè ñòðîêГ* Г·ГҐГІГ*Г*Гї, ГІГ® ïðîñòî Г§Г*ïèñûâГ*ГҐГ¬ ГҐВё Гў ГґГ*éë
                 writeln(F,S);
                end else Begin  //Åñëè æå ñòðîêГ* Г*ГҐГ·ГҐГІГ*Г*Гї
                   Vopros2_PoiskMaksSlova(temp,i); //Èùåì Гў Г*ГҐГ© ñëîâî Г¬Г*ГЄГ±ГЁГ¬. äëèГ*Г»
                   Insert(MaxDlina+'   ',S,1); //ÂñòГ*âëÿåì ñëîâî Г¬Г*ГЄГ±ГЁГ¬. äëèГ*Г» Гў ñëåä. ñòðîêó. Г‚ Г*Г*Г·Г*ëî
                   writeln(F,S+' '); //Г‡Г*ïèñûâГ*ГҐГ¬ äîïîëГ*ГҐГ*Г*Г® ñëîâî Гў ГґГ*éë
                   writeln('S = ',S); //Âûâîäèì Г*Г* ГЅГЄГ°Г*Г* Г·ГІГ® ïîëó÷èëîñü. ÌîæГ*Г® ГіГЎГ°Г*ГІГј
                   S:='';  //ГЋГ·ГЁГ№Г*ГҐГ¬ ñòðîêó äëÿ Г*îâîé îáðГ*áîòêè
               end;
               temp:=S; //Г‡Г*ïîìèГ*Г*ГҐГ¬ ñòðîêó, êîòîðóþ òîëüêî Г·ГІГ® ââîäèëè. Áóäåò ГЄГ*ГЄ ïðåäûäóùГ*Гї
             end;
          Close(F);  //Г‡Г*ГЄГ*Г*Г·ГЁГўГ*ГҐГ¬ Г°Г*áîòó Г± ГґГ*éëîì
 
    end;
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
  {Ïîëó÷Г*ГҐГ¬ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ ГЁ Г§Г*ïèñûâГ*ГҐГ¬ ГҐГЈГ® Гў ГЄГ®Г*ГҐГ¶ ГґГ*éëГ*}
    Procedure Vopros1_GetMaxEl;
    var MaxEl:Integer; //ГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ
    Begin
     MaxEl:=0;
         Assign(F,MyFile);
         Reset(F);
           While not eof(F) do Begin
            readln(F,i); //Ñ÷èòûâГ*ГҐГ¬ ГЁГ§ ГґГ*éëГ* ÷èñëî
            write(i,' ');  //Âûâîäèì ГҐГЈГ® Г*Г* ГЅГЄГ°Г*Г*
            if i>MaxEl then MaxEl:=i; //Åñëè Г*Г*ГёГҐ ÷èñëî áîëüøå Г*Г*øåãîìГ*ГЄГ±ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*, ìåГ*ГїГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГҐ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*
           end;
         Close(F);
         writeln('maxEl = ',maxEl);  //Âûâîäèì ГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ Г*Г* ГЅГЄГ°Г*Г*
 
         Assign(F,MyFile); //ÄîïèñûâГ*ГҐГ¬ ýëåìåГ*ГІ Гў ГЄГ®Г*ГҐГ¶ ГґГ*éëГ*
         Append(F);
          write(F,MaxEl);
         Close(F);
    end;
 
    {ГЌГ*Г·Г*ëî îáðГ*áîòêè ïåðâîãî âîïðîñГ*}
    Procedure Vopros1;
    Begin
     Randomize;
        i:=Random(20);
        Assign(F,MyFile); Rewrite(F); Close(F); //ÑòèðГ*ГҐГ¬ ГґГ*éë åñëè Г®Г* Г*ГҐ ïóñòîé èëè ñîçäГ*ГҐГ¬ Г*îâûé åñëè ГґГ*éëГ* Г*ГҐГІ.
 
        Assign(F,MyFile); //ÄîïèñûâГ*ГҐГ¬ Гў ГґГ*éë Г§Г*Г*Г·ГҐГ*ГЁГї
        Append(F);
        for j:=0 to i do Begin
            writeln(F,Random(50)); //Г‡Г*ïèñûâГ*ГҐГ¬ ñëó÷Г*Г©Г*ûå Г·ГЁГ±Г«Г*
        end;
        Close(F);
        Vopros1_GetMaxEl;   //Ïîëó÷Г*ГҐГ¬ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ ГЁГ§ ñîçäГ*Г*Г*îãî ГґГ*éëГ*
    end;
 
    {Ïðîñòî Г¬Г*ëåГ*ГјГЄГЁГ© ГЁГ*òåðôåéñ}
    procedure Menu;
      Begin
      writeln('wiberi vopros ');
      writeln;
      writeln('1. Perviy Vopros');
      writeln('2. Vtoroy Vopros');
      writeln('0. Exit');
 
      readln(Vibor);
       writeln;
       writeln;
         Case Vibor of
              1: Vopros1;
              2: Vopros2;
         end;
     end;
 
begin
  { TODO -oUser -cConsole Main : Insert code here }
  Randomize;
  repeat
   Menu;     //ÂûïîëГ*ГїГҐГ¬ öèêë ïîêГ* Г*ГҐ Г*Г*Г¦Г*ГІ 0+Enter;
  until vibor = 0;
 
  readln;
end.