таблицы в турбо паскале, помогите, плиз...
Помогите чайнику с задачей
Известна информация о сотрудниках некоторого предприятия:
-фамилия, инициалы;
-должность, оклад;
Сформировать таблицу, записав в неё всю известную информацию о каждом сотруднике.Сформировать поле "подоходный налог", учитывая, что он составляет 13% от оклада и поле "к выплате".Определить количество с минимальной зарплатой, количество с максимальной зарплатой (по 5 записей). Отсортировать таблицу по полю "должность ".
Заранее благодарна всем, кто откликнется!
Известна информация о сотрудниках некоторого предприятия:
-фамилия, инициалы;
-должность, оклад;
Сформировать таблицу, записав в неё всю известную информацию о каждом сотруднике.Сформировать поле "подоходный налог", учитывая, что он составляет 13% от оклада и поле "к выплате".Определить количество с минимальной зарплатой, количество с максимальной зарплатой (по 5 записей). Отсортировать таблицу по полю "должность ".
Заранее благодарна всем, кто откликнется!
Наверное так:
[syntax='Delphi']
program prog1;
uses
Crt;
Type
TEmploeye=record
Name:string;
Post:string;
Salary:LongInt;
Tax:LongInt;
Payment:LongInt;
end;
Const
N=5;
var
Table: array[1..N] of TEmploeye;
I,J:integer;
K:TEmploeye;
Max,Min:LongInt;
MaxCnt,MinCnt:integer;
procedure Sort;
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=Table[j-1];
if k.Post>Table[j].Post then
begin
Table[j-1]:=Table[j];
Table[j]:=k;
end;
end;
end;
Procedure WriteRow(idx:integer);
var
R:string;
i:integer;
s:string;
begin
R:=Table[idx].Name;
For i:=Length(R) to 9 do
R:=R+' ';
R:=R+Table[idx].Post;
For i:=Length(R) to 20 do
R:=R+' ';
Str(Table[idx].Salary,s);
R:=R+s;
For i:=Length(R) to 30 do
R:=R+' ';
Str(Table[idx].Tax,s);
R:=R+s;
For i:=Length(R) to 38 do
R:=R+' ';
Str(Table[idx].Payment,s);
R:=R+s;
Writeln(R);
end;
Procedure FindMaxMin;
var
I:integer;
begin
Max:=Low(LongInt);
Min:=High(LongInt);
For I:=1 to N do
if Table.Payment>Max then
Max:=Table.Payment;
For I:=1 to N do
if Table.Payment<Min then
Min:=Table.Payment;
MaxCnt:=0;
MinCnt:=0;
For I:=1 to N do
begin
If Table.Payment=Max then
Inc(MaxCnt);
If Table.Payment=Min then
Inc(MinCnt);
end;
end;
begin
ClrScr;
for I:=1 to N do
with Table do
begin
Writeln('Введите данные для работника № ',I,' :');
Writeln('Имя и инициалы:');
Readln(Name);
Writeln('Должность:');
Readln(Post);
Writeln('Оклад:');
Readln(Salary);
Tax:=(Salary div 100)*13;
Payment:=Salary-Tax;
end;
Sort;
Writeln('Имя: Должность: Оклад: Налог: К выплате:');
for i:=1 to N do
begin
WriteRow(i);
end;
FindMaxMin;
writeln;
Writeln('С минимальной зарплатой : ',MinCnt);
Writeln('С максимальной зарплатой : ',MaxCnt);
repeat until keypressed;
end.
[/syntax]
[syntax='Delphi']
program prog1;
uses
Crt;
Type
TEmploeye=record
Name:string;
Post:string;
Salary:LongInt;
Tax:LongInt;
Payment:LongInt;
end;
Const
N=5;
var
Table: array[1..N] of TEmploeye;
I,J:integer;
K:TEmploeye;
Max,Min:LongInt;
MaxCnt,MinCnt:integer;
procedure Sort;
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=Table[j-1];
if k.Post>Table[j].Post then
begin
Table[j-1]:=Table[j];
Table[j]:=k;
end;
end;
end;
Procedure WriteRow(idx:integer);
var
R:string;
i:integer;
s:string;
begin
R:=Table[idx].Name;
For i:=Length(R) to 9 do
R:=R+' ';
R:=R+Table[idx].Post;
For i:=Length(R) to 20 do
R:=R+' ';
Str(Table[idx].Salary,s);
R:=R+s;
For i:=Length(R) to 30 do
R:=R+' ';
Str(Table[idx].Tax,s);
R:=R+s;
For i:=Length(R) to 38 do
R:=R+' ';
Str(Table[idx].Payment,s);
R:=R+s;
Writeln(R);
end;
Procedure FindMaxMin;
var
I:integer;
begin
Max:=Low(LongInt);
Min:=High(LongInt);
For I:=1 to N do
if Table.Payment>Max then
Max:=Table.Payment;
For I:=1 to N do
if Table.Payment<Min then
Min:=Table.Payment;
MaxCnt:=0;
MinCnt:=0;
For I:=1 to N do
begin
If Table.Payment=Max then
Inc(MaxCnt);
If Table.Payment=Min then
Inc(MinCnt);
end;
end;
begin
ClrScr;
for I:=1 to N do
with Table do
begin
Writeln('Введите данные для работника № ',I,' :');
Writeln('Имя и инициалы:');
Readln(Name);
Writeln('Должность:');
Readln(Post);
Writeln('Оклад:');
Readln(Salary);
Tax:=(Salary div 100)*13;
Payment:=Salary-Tax;
end;
Sort;
Writeln('Имя: Должность: Оклад: Налог: К выплате:');
for i:=1 to N do
begin
WriteRow(i);
end;
FindMaxMin;
writeln;
Writeln('С минимальной зарплатой : ',MinCnt);
Writeln('С максимальной зарплатой : ',MaxCnt);
repeat until keypressed;
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Благодарю! Скажите пожалуйста, многоуважаемый MOTOcoder, как, не набирая снова эту программу в турбопаскаль проверить как она работает, тоесть как то скопировать и вставить можно в тпаскаль?
с уважением Света7
с уважением Света7
Проще всего будет создать новый текствый файл в Блокноте, скопировать код и вставить в него, затем сохранить его как файл с расширением .pas . Дальше его можно открыть в паскале, правда придется переписать русские надписи вручную(вместо них будет непонятный набор символов).
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
а можно, я отвечу за многоуважаемого (это без всякой иронии!!!) MOTOcoder...
можно выделить текст программы в браузере, скопировать, открыть текстовый редактор (желательно такой, который поддерживает кодировку DOS, например, FAR manager), вставьте туда скопированный текст и сохраните под именем PROG1.PAS
Кстати, рекомендую копировать текст после того, как нажмёте на кнопку "quote"[справа внизу в сообщении от MOTOcoder - тогда текст будет отформатирован правильно.
ДОБАВЛЕНО да... успеешь за ним... он, похоже тут на форуме живёт!! ;-))
MOTOcoder - респект!
можно выделить текст программы в браузере, скопировать, открыть текстовый редактор (желательно такой, который поддерживает кодировку DOS, например, FAR manager), вставьте туда скопированный текст и сохраните под именем PROG1.PAS
Кстати, рекомендую копировать текст после того, как нажмёте на кнопку "quote"[справа внизу в сообщении от MOTOcoder - тогда текст будет отформатирован правильно.
ДОБАВЛЕНО да... успеешь за ним... он, похоже тут на форуме живёт!! ;-))
MOTOcoder - респект!
MOTOCoder писал(а):Наверное так:
[syntax='Delphi']
program prog1;
uses
Crt;
Type
TEmploeye=record
Name:string;
Post:string;
Salary:LongInt;
Tax:LongInt;
Payment:LongInt;
end;
Const
N=5;
var
Table: array[1..N] of TEmploeye;
I,J:integer;
K:TEmploeye;
Max,Min:LongInt;
MaxCnt,MinCnt:integer;
procedure Sort;
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=Table[j-1];
if k.Post>Table[j].Post then
begin
Table[j-1]:=Table[j];
Table[j]:=k;
end;
end;
end;
Procedure WriteRow(idx:integer);
var
R:string;
i:integer;
s:string;
begin
R:=Table[idx].Name;
For i:=Length(R) to 9 do
R:=R+' ';
R:=R+Table[idx].Post;
For i:=Length(R) to 20 do
R:=R+' ';
Str(Table[idx].Salary,s);
R:=R+s;
For i:=Length(R) to 30 do
R:=R+' ';
Str(Table[idx].Tax,s);
R:=R+s;
For i:=Length(R) to 38 do
R:=R+' ';
Str(Table[idx].Payment,s);
R:=R+s;
Writeln(R);
end;
Procedure FindMaxMin;
var
I:integer;
begin
Max:=Low(LongInt);
Min:=High(LongInt);
For I:=1 to N do
if Table.Payment>Max then
Max:=Table.Payment;
For I:=1 to N do
if Table.Payment<Min then
Min:=Table.Payment;
MaxCnt:=0;
MinCnt:=0;
For I:=1 to N do
begin
If Table.Payment=Max then
Inc(MaxCnt);
If Table.Payment=Min then
Inc(MinCnt);
end;
end;
begin
ClrScr;
for I:=1 to N do
with Table do
begin
Writeln('Введите данные для работника № ',I,' :');
Writeln('Имя и инициалы:');
Readln(Name);
Writeln('Должность:');
Readln(Post);
Writeln('Оклад:');
Readln(Salary);
Tax:=(Salary div 100)*13;
Payment:=Salary-Tax;
end;
Sort;
Writeln('Имя: Должность: Оклад: Налог: К выплате:');
for i:=1 to N do
begin
WriteRow(i);
end;
FindMaxMin;
writeln;
Writeln('С минимальной зарплатой : ',MinCnt);
Writeln('С максимальной зарплатой : ',MaxCnt);
repeat until keypressed;
end.
[/syntax]
что то программа выдает несколько ошибок, помогите исправить, если сможете
с уважением Света7
Света7, телепаты на форуме обычно в отпуске. Где выдает ошибки и какие?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
да кто её знает, где то там, в программе, это ведь вы программисты, а я полный чайник.Вроде синтаксические что ли. Будтье любезны, помогите
У меня компилируется без ошибок.
Приведите сообщение об ошибке, которое выдает компилятор.
Приведите сообщение об ошибке, которое выдает компилятор.
Ни что так не ограничивает фантазию программиста, как компилятор...