|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите перевести программу с Pascal на С |
|
C/C++ - Помогите перевести программу с Pascal на С
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Вот код на языке Pascal:
program sample; uses utils, System; type TDate = record day : integer; month: integer; year : integer; end; TFIO = record Name : string; Family : string; Additional : string; end; TATSInfo = record ATStype: string; ATSphoneNumber: integer; ATSfio: TFIO; ATSadress: string; ATStarif: string; ATScost: integer; ATSlastPay: TDate; end; var i, j, N : integer; ATSList : array of TATSInfo; Hist : array of integer; ATSUniq : array of string; Abonent1, Abonent2, tmpAbonent : TATSInfo; typeAction : integer; phoneNumber, currentNumber : integer; ATSName, currentATS : string; d : DateTime; begin writeln('Введите количество записей'); readln(N); SetLength(ATSList, N); for i := 0 to N - 1 do begin with ATSList[i] do begin writeln('Введите название АТС'); readln(ATStype); writeln('Введите номер телефона абонента'); readln(ATSPhoneNumber); writeln('Введите фамилию, имя и отчество абонента'); writeln; with ATSfio do begin writeln('Введите имя'); readln(name); writeln('Введите фамилию'); readln(Family); writeln('Введите отчество'); readln(Additional); end; writeln('Введите адрес абонента'); readln(ATSadress); writeln('Введите название тарифа'); readln(ATStarif); writeln('Введите размер абонентской платы'); readln(ATScost); writeln('Введите дату последнего платежа'); writeln; with ATSlastPay do begin writeln('Введите число'); readln(day); writeln('Введите месяц'); readln(month); writeln('Введите год'); readln(year); end; end; end; writeln; writeln('Выберите действие'); writeln('1 - Найти абонента по номеру телефона'); writeln('2 - Упорядочить информацию по ФИО абонента'); writeln('3 - Вывод абонентов определенной АТС'); writeln('4 - Вывод абонентов должников текущего месяца в формате dd:mm:yy'); writeln('5 - Вывод процентного соотношения абонентов различных АТС'); writeln('0 - Выход'); writeln; readln(typeAction); case typeAction of 1: begin writeln('Введите номер телефона абонента'); readln(phoneNumber); writeln; for i := 0 to N - 1 do begin with ATSList[i] do begin currentNumber := ATSPhoneNumber; if (currentNumber = phoneNumber) then begin writeln(ATStype, ' ', ATSfio.Name, ' ', ATSfio.Family, ' ', ATSfio.Additional, ' ', ATSadress, ' ', ATStarif, ' ', ATScost, ' / ', ATSlastPay.day, ' ', ATSlastPay.month, ' ', ATSlastPay.year ); break; end; end; end; end; 2: begin for i := 0 to N - 2 do begin for j := 0 to N - i - 1 do begin Abonent1 := ATSList[i]; Abonent2 := ATSList[i + 1]; if (Abonent1.ATSfio.Family[1] > Abonent2.ATSfio.Family[1]) then begin tmpAbonent := Abonent1; Abonent1 := Abonent2; Abonent2 := tmpAbonent; end; ATSList[i] := Abonent1; ATSList[i + 1] := Abonent2; end; end; writeln('Выберите действие'); writeln('1 - Найти абонента по номеру телефона'); writeln('2 - Упорядочить информацию по ФИО абонента'); writeln('3 - Вывод абонентов определенной АТС'); writeln('4 - Вывод абонентов должников текущего месяца в формате dd:mm:yy'); writeln('5 - Вывод процентного соотношения абонентов различных АТС'); writeln('0 - Выход'); writeln; for i:=0 to N - 1 do begin with ATSList[i] do begin writeln(ATStype, ' ', ATSPhoneNumber, ' ', ATSfio, ' ', ATSadress, ' ', ATStarif, ' ', ATScost, ' / ', ATSlastPay.day, ' ', ATSlastPay.month, ' ', ATSlastPay.year ); end; end; end; 3: begin writeln('Введите название АТС'); readln(ATSName); writeln; writeln('Выберите действие'); writeln('1 - Найти абонента по номеру телефона'); writeln('2 - Упорядочить информацию по ФИО абонента'); writeln('3 - Вывод абонентов определенной АТС'); writeln('4 - Вывод абонентов должников текущего месяца в формате dd:mm:yy'); writeln('5 - Вывод процентного соотношения абонентов различных АТС'); writeln('0 - Выход'); writeln; for i := 0 to N - 1 do begin with ATSList[i] do begin currentATS := ATSName; if (currentATS = ATSName) then begin writeln(ATSPhoneNumber, ' ', ATSfio.Name, ' ', ATSfio.Family, ' ', ATSfio.Additional, ' ', ATSadress, ' ', ATStarif, ' ', ATScost, ' / ', ATSlastPay.day, ' ', ATSlastPay.month, ' ', ATSlastPay.year ); break; end; end; end; end; 4: begin writeln('Введите название АТС'); readln(ATSName); writeln; writeln('Выберите действие'); writeln('1 - Найти абонента по номеру телефона'); writeln('2 - Упорядочить информацию по ФИО абонента'); writeln('3 - Вывод абонентов определенной АТС'); writeln('4 - Вывод абонентов должников текущего месяца в формате dd:mm:yy'); writeln('5 - Вывод процентного соотношения абонентов различных АТС'); writeln('0 - Выход'); writeln; d := DateTime.Today; for i := 0 to N - 1 do begin with ATSList[i] do begin with ATSlastPay do begin if d.Month >= Month then begin if d.Day > 25 then begin writeln(ATStype, ' ', ATSPhoneNumber, ' ', ATSfio.Name, ' ', ATSfio.Family, ' ', ATSfio.Additional, ' ', ATSadress, ' ', ATStarif, ' ', ATScost, ' / ', ATSlastPay.day, ' ', ATSlastPay.month, ' ', ATSlastPay.year ); end; end; end; end; end; end; 5: begin SetLength(Hist, N); SetLength(ATSUniq, N); for i := 0 to N - 1 do begin with ATSList[i] do begin currentATS := ATStype; for j := 0 to N - 1 do begin end; end; end; end; 0: begin halt; end; else begin halt; end; end; ATSList := nil; end. |
|
Отправлено: 21:52, 04-06-2015 |
Ветеран Сообщения: 20112
|
Профиль | Отправить PM | Цитировать aliska_s., текст читается читается с трудом. оформите по человечески и вставьте в тег [code]текст[/code]
Ну и посмотрите http://www.garret.ru/pascal.html |
------- Отправлено: 22:36, 04-06-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать yurfed, таки вы думаете, что он(а) вернётся?
|
------- Отправлено: 00:20, 05-06-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать «Они всегда возвращаются!» . Правда, обычно под новым именем.
|
Отправлено: 07:47, 05-06-2015 | #4 |
Забанен Сообщения: 793
|
Iska, "толи девочки, а толь привидения..."
|
|
Отправлено: 19:33, 05-06-2015 | #5 |
Ветеран Сообщения: 20112
|
Профиль | Отправить PM | Цитировать Цитата mwz:
|
|
------- Отправлено: 22:05, 05-06-2015 | #6 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата yurfed:
И читать при этом всякую там литературу и проверять советы – только время терять. |
|
------- Отправлено: 09:17, 06-06-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Он(а) таки вернулось .
|
Отправлено: 23:02, 06-06-2015 | #8 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Iska, похоже что с очередным бомбометанием... Пора курсовых?
|
------- Отправлено: 01:29, 07-06-2015 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Помогите перевести код с Pascal в С++ | Nice way | Программирование и базы данных | 0 | 25-04-2015 15:23 | |
C/C++ - Перевести програму из Pascal на C | starker | Программирование и базы данных | 0 | 13-12-2012 19:02 | |
C/C++ - Нужно перевести с pascal на C и добавить циклы к ней | Чин Хон | Программирование и базы данных | 8 | 03-02-2011 23:54 | |
Разное - [Pascal] помогите написать программу | rom6520 | Программирование и базы данных | 6 | 22-01-2011 19:54 | |
Разное - перевести с кода C++ на Pascal... | radeon37 | Программирование и базы данных | 0 | 03-06-2010 12:20 |
|