Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Borland C] Перевод из Pascal в Borland C


Автор: jack7 2.5.2010, 09:37
Помогите пожалуйста перевести программы с Pascal на   Borland C, с Borland C ни разу не работал. 
Заранее спасибо!

Код

program kr2;
uses
    crt;
const
    MAX = 21;                 {размер массива}
type
    Tvect = array[1..MAX] of real;
    {имя массива  тип индекса  тип элемента}
{-----------------------------------------------------------}
{poisk indeksa minimalnogo elementa}
function seekIndexMin(pvect : Tvect; n : integer) : integer;
{Эта функция ищет мин. индекс в массиве pvect размерностью n}

var
    i, imin : integer;
begin
    imin := 1;
    for i := 2 to n do
        if(pvect[i] < pvect[imin]) then       {находим меньший индекс}
            imin := i;                    {<--выполняется один оператор т.к. в теле цикла нет begin и end}
    seekIndexMin := imin;
end;
{-----------------------------------------------------------}
{raschet srednego arifmeticheskogo}
function aver(pvect : Tvect; n : integer) : real;      {функция aver расчитывает среднее арифметическое в массиве pvect размерностью n}
var
    i : integer;
    s : real;
begin
    s := 0;
    for i := 1 to n do
        s := s + pvect[i];     {складывем элементы и делим на кол-во элеметов}  {<--выполняется 1 оперетор т.к. в теле цикла нет begin и end}
    aver := s / n;
end;
{-----------------------------------------------------------}
{vstavka srednego arif posle min}
procedure insertAverAfterMin(var pvect : Tvect; var n : integer; paver : real; pimin : integer);
{эта процедура вставляет среднее рифметическое после мин. элемента в массиве pvect размерностью n, paver число}
var
    i : integer;
begin
    for i := n + 1 downto pimin + 2 do    {начинаем с конца т.к. downto n+1 делаем отступ для среднего арифметического}
        pvect[i] := pvect[i - 1];       {<--выполняется 1 оперетор т.к. в теле цикла нет begin и end}
    pvect[pimin + 1] := paver;
    inc(n, 1);          {освобождение места размером в 1 индекс}
end;
{-----------------------------------------------------------}
{pechat massiva na ekrane}
procedure printVect(pvect : Tvect; n : integer);         {печатаем массив pvect размерностью n}
var
    i : integer;
begin
    writeln;
    write('Массив имеет вид: ');
    for i := 1 to n do                                                   {<--выполняется 1 оперетор т.к. в теле цикла нет begin и end}
        write(pvect[i]:5:0);     {вывод массива pvect[i] на экран}
    writeln;
end;
{-----------------------------------------------------------}
{Основная программа}
var
    pvect : Tvect;
    n, i : integer;
begin
    clrscr;
    write('Введите кол-во элементов массива ');
    readln(n);                                    {Ввод кол-ва элементов}
    for i := 1 to n do
    begin
    writeln('Введите массив:');
    Readln(pvect[i]);                                {Ввод массива}
    end;
    printVect(pvect, n);

    insertAverAfterMin(pvect, n, aver(pvect, n), seekIndexMin(pvect, n));
    printVect(pvect, n);
    readkey;

end.





и вот вторая 

Код

Program lr15_6;
Type konf=record              {Описание переменной}
nazvan:string[20];
ves,kolvo,veskor:integer;
end;
var N,i,min,ves,kolvo,s,imin,m:integer;
    x:array[1..20] of konf;
    begin
    Writeln('Сколько будет названий коробок: ');
    Readln(N);
    for i:=1 to N do
    begin
    writeln('Введите название коробки'); Readln(x[i].nazvan);
    writeln('Вес конфеты в коробке гр.'); Readln(x[i].ves);
    writeln('Количество конфет в коробке шт.'); Readln(x[i].kolvo);
    writeln;
    end;
    min:=32767;

    for i:=1 to n do                    {определение самой легкой}
 begin
 x[i].veskor:=x[i].kolvo*x[i].ves;     {умножаем вес конфеты и количество конфет в коробке, чтобы найти вес коробки}
 if x[i].veskor<min then
    min:=x[i].veskor;

  Writeln(x[i].nazvan,' ',x[i].veskor);
  writeln;

 end;
Writeln('Самые легкие коробки:  ');
for i:=1 to n do

 begin
  if x[i].veskor=min then

Writeln(x[i].nazvan,' ',x[i].veskor);


   end;
end.



Автор: Letov 4.5.2010, 23:37
Вторая программа:

Код
#include <iostream.h>
struct konf
{
    char nazvan[20];
    int ves, kolvo, veskor;
};

void main(void)
{
    int N, ves, kolvo, s, imin, m;
    konf x[20];
    cout<<"Сколько будет названий коробок: "<<endl;
    cin>>N;
    for(int i = 0; i < N; i++)
    {
        cout<<"ВВедите название коробки "<<endl;
        cin>>x[i].nazvan;
        cout<<"Вес конфеты в коробке гр. "<<endl;
        cin>>x[i].ves;
        cout<<"Количество конфет в коробке шт. "<<endl;
        cin>>x[i].kolvo;
    };
    int min = 32767;
    for(i = 0; i < N; i++)
    {
        x[i].veskor = x[i].kolvo * x[i].ves;
        if(x[i].veskor < min)
            min = x[i].veskor;
            cout<<x[i].nazvan<<" "<<x[i].veskor<<endl<<endl;
    };
    cout<<"Самые легкие коробки: "<<endl;
    for(i = 0; i < N; i++)
    {
        if(x[i].veskor == min)
            cout<<x[i].nazvan<<" "<<x[i].veskor<<endl<<endl;
    };
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)