IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Сортировка, поиск, Язык Си
Zas
сообщение 26.05.2007 19:39
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Помогите пожалуйста переписать из Паскаля в Си, пунктуацию си совсем не знаю, если не сложно:
Main.pas

program pagr;
uses g_modulis;
var l, kiek, c, i, p,i1, a_search : integer;
   rez, stat : string;
   mas : masyvas;
   f, outf, st : text;
   start,start1,Result: longint;

begin

   {$I-}
    Assign(f, 'BLA.txt');
    Rewrite(f);
    for i := 1 to 2000 do
    begin
      randomize;
      mas[i] := random(1000);
      write(f, mas[i], ' ');
    end;
    reset(f);

    kiek :=0;
    repeat
      Writeln(' Enter the result file name: ');
      Readln(rez);
      Assign(outf, rez);
      Rewrite(outf);
      Inc(kiek);
      if kiek=3 then halt;
    until IOResult=0;

    kiek :=0;
    repeat
      Writeln('Enter the statistics file name: ');
      Readln(stat);
      Assign(st, stat);
      Rewrite(st);
      Inc(kiek);
      if kiek=3 then halt;
    until IOResult=0;
  {$I+}

  p := 1;

  while not seekeof(f) do
  begin
    if seekeoln(f) then
      readln(f);
    read(f, l);
    mas[p] := l;
    inc(p);
  end;
  
  writeln('First  massive');
  for i1 :=1 to 2000 do
    write(mas[i1],' ');

  writeln;
  start:=gettime1;
  burbulas(mas , n);
  writeln('Time of sorting:',gettime1-start, ' mSec');
  write(st, gettime1-start );
  for c := 1 to 2000 do
    begin
      write(outf, mas[c]);
      write(outf,' ');
      write(mas[c],' ');
    end;
  writeln;
  Writeln(' Enter the value of element to find:');
  Readln(a_search);

  start1:=gettime1;
  Result:=Bin_Search (mas, 50, a_search);
       if (result > 0) then  begin
        WriteLn('Time of finding ', GetTime1 - start1);

        writeln ('number= ',result) ;
        end
     else writeln('Not found!');
     readln;

  close(f);
  close(st);
  close(outf);
  readln;

end.
        
        
        




Module.pas

unit g_modulis;

interface
uses dos;
const n =2000;

type masyvas = array[1..n] of integer;


procedure burbulas(var mas : masyvas; n : integer);
function  Gettime1:longint;
Function Bin_Search (mas:masyvas; size:integer; x: integer) : integer;


implementation

procedure burbulas(var mas : masyvas; n : integer);
var i, j, b : integer;
    c : boolean;
begin
  j:= 1;
  repeat
    c:=true;
    for i:=1 to n-j do
    if mas[i] > mas[i+1] then
      begin
        b:= mas[i];
        mas[i]:= mas[i+1];
        mas[i+1]:=b;
        c:=false;
      end;
    j:=j+1;
  until (j=n) or c
end;

function Gettime1:LongInt;
var h,m,s,ms:word;
begin
gettime(h,m,s,ms);
gettime1:=ms+100*(s+60*(m+60*h));
end;


Function Bin_Search (mas:masyvas; size:integer; x: integer) : integer;

Var left, right, center: integer;
begin
left := 1; right := size;
repeat      center := (right + left)
div 2;
if mas[ center ] >= X
then right := center
else left := center;
until (right - left = 1) or (mas[ center ] = X);
bin_search:=center;
end;
end.




Прикрепленные файлы
Прикрепленный файл  pagr.pas ( 1.73 килобайт ) Кол-во скачиваний: 171
Прикрепленный файл  g_modulis.pas ( 1.06 килобайт ) Кол-во скачиваний: 185
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 20.07.2025 3:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"