Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите перевести программу с Pascal на С

Ответить
Настройки темы
C/C++ - Помогите перевести программу с Pascal на С

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить 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

 

Аватара для yurfed

Ветеран


Сообщения: 20112
Благодарности: 3137

Профиль | Отправить PM | Цитировать


aliska_s., текст читается читается с трудом. оформите по человечески и вставьте в тег [code]текст[/code]
Ну и посмотрите http://www.garret.ru/pascal.html

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 22:36, 04-06-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


yurfed, таки вы думаете, что он(а) вернётся?

-------
Mikhail Zhilin


Отправлено: 00:20, 05-06-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


«Они всегда возвращаются!» . Правда, обычно под новым именем.

Отправлено: 07:47, 05-06-2015 | #4


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Iska, "толи девочки, а толь привидения..."

Отправлено: 19:33, 05-06-2015 | #5


Аватара для yurfed

Ветеран


Сообщения: 20112
Благодарности: 3137

Профиль | Отправить PM | Цитировать


Цитата mwz:
таки вы думаете, что он(а) вернётся? »
Я начинаю думать что это ОНО самое...

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 22:05, 05-06-2015 | #6

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата yurfed:
начинаю думать что это ОНО самое »
Это ковровое бомбометание по форумам: авось где сразу курсовую сделают, а не станут учить, как надо делать.
И читать при этом всякую там литературу и проверять советы – только время терять.

-------
Mikhail Zhilin


Отправлено: 09:17, 06-06-2015 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Он(а) таки вернулось .

Отправлено: 23:02, 06-06-2015 | #8

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Iska, похоже что с очередным бомбометанием... Пора курсовых?

-------
Mikhail Zhilin


Отправлено: 01:29, 07-06-2015 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите перевести программу с Pascal на С

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход