Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 19:06   #1
born2k
Новичок
Джуниор
 
Регистрация: 23.05.2012
Сообщений: 1
По умолчанию Перевод с Паскаля на C/C++

Помогите пожалуйста с задачкой, нужно перевести код с Паскаля на C/C++.
вот сама программа на Паскаль
Код:
program zapisi1; 
 uses crt; 
 const nmax=7; 
 type Trab = record 
             name:string[30]; 
             oklad:longint; 
             prem:longint; 
             end; 
 Var rab: Trab; 
     firma: array [1..nmax] of Trab; 
     s:string; 
     n, i, j, code:integer; 
     o:longint; 
 begin 
 clrscr; 
 writeln ('Записи 1'); 
 repeat 
 write ('Введите число сотрудников '); 
 readln (n); 
 If (n < 1) Or (n > nmax) Then 
 writeln ('Ошибка '); 
 until (n>=1) and (n<=nmax); 
 for i:=1 to n do 
    begin 
     write ('Введите данные', i, 'сотрудника '); 
     readln (s); 
     firma[i].name := copy (s, 1, pos(' ',s)-1); 
     delete (s, 1,pos(' ',s) ); 
     val (s, o, code); 
     If code = 0 Then 
     firma[i].oklad := o; 
     firma[i].prem:=firma[i].oklad*3; 
   end; 
 {Упорядочивание} 
 for i:=1 to n-1 do 
 for j:=i+1 to n do 
 if firma[i].name>firma[j].name then 
    begin 
     rab:=firma[i]; 
     firma[i]:=firma[j]; 
     firma[j]:=rab; 
    end; 

 writeln ('Список на премирования:'); 
 for i:=1 to n do 
 writeln (firma[i].name,' Oklad=',firma[i].oklad,'  Premia=',firma[i].prem); 
 readln 
 end.
born2k вне форума Ответить с цитированием
Старый 23.05.2012, 19:43   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

http://www.programmersforum.ru/showthread.php?t=34061
_Bers вне форума Ответить с цитированием
Старый 24.05.2012, 14:56   #3
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
const nmax=7; 
 type Trab = record 
             name:string[30]; 
             oklad:longint; 
             prem:longint; 
             end; 
 Var rab: Trab; 
     firma: array [1..nmax] of Trab; 
     s:string; 
     n, i, j, code:integer; 
     o:longint; 
 begin 
 clrscr; 
 writeln ('Записи 1'); 
 repeat 
 write ('Введите число сотрудников '); 
 readln (n); 
 If (n < 1) Or (n > nmax) Then 
 writeln ('Ошибка '); 
 until (n>=1) and (n<=nmax);
Код:
const int nmax  = 7;
 typedef struct TRAB
 {

 }TRab, *TRab;

TRab rab;
TRab firma [nmax];
string s;
int n,i,j,code;
long int o;
system("clr");

cout << "Записи 1" << endl;
do
{
	cout << "Введите число сотрудников" << endl;
	cin >> n;
	if(n<1 || n >nmax)
	cout << "Тута у нас ошибко." << endl;
}while(n>=1) && (n<=nmax)
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 24.05.2012, 18:39   #4
ERAGORN
Пользователь
 
Аватар для ERAGORN
 
Регистрация: 02.01.2012
Сообщений: 46
По умолчанию

Код:
#include <iostream>
#include <cstdlib>

using namespace std;

struct Trab{
    string name;
    long oklad;
    long prem;
};

int main( void ){
    const int nmax = 7;
    Trab firma[nmax];
    int n;

    cout << "'Записи 1" << endl;

    while ( true ){
        cout << "Введите число сотрудников: ";
        cin >> n;

        if ( n >= 1 && n <= nmax ) break;
        cout << "'Ошибка" << endl; 
    }

    for ( int i = 0; i < n; ++i ){
        cout << "Введите данные " << i << " сотрудника" << endl;
        cout << "name: ";
        cin >> firma[i].name;
        cout << "oklad: ";
        cin >> firma[i].oklad;
        firma[i].prem = firma[i].oklad * 3;
        cout << endl;
    }

    for ( int i = 0; i < n - 1; ++i )
        for ( int j = i + 1; j < n; ++j )
            if ( firma[i].name > firma[j].name ){
                Trab rab = firma[i];
                firma[i] = firma[j];
                firma[j] = rab; 
            }

    cout << "Список на премирования:" << endl;
    for ( int i = 0; i < n; ++i )
        cout << firma[i].name
              << " Oklad=" << firma[i].oklad
              << " Premia=" << firma[i].prem
              << endl;
    cout << endl;

    system("pause");

    return 0;
}
ERAGORN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из паскаля на СИ Кот Шрёдингера Помощь студентам 0 02.11.2011 20:07
Перевод с Паскаля на С++.... Solnze2 Помощь студентам 0 20.05.2011 23:13
перевод из паскаля в с++ dANIL282 Помощь студентам 2 21.01.2011 00:05
Перевод с Паскаля на С RamilFaz Общие вопросы C/C++ 3 08.04.2010 14:40
Перевод с Паскаля на С++ MrJenika Помощь студентам 2 20.11.2009 20:42