у меня не получается вывести нужные фамилии. посмотрите и исправьте пожалуйста. заранее спасибо
текст программы:
Program Fio_Pupil;
uses crt;
const n=5;
var a:array [1..n] of string;
b:array [1..n] of integer;
k:array [1..n,1..2] of real;
x:array [1..n] of integer;
i,j,l,t,d,m,min,max,max2,p:integer;
S,R,h:real;
procedure windows (color: byte; x1, y1, x2, y2: integer);
begin
textbackground(black);
window (x1+1,y1+1,x2+1,y2+1);
clrscr;
textbackground (color);
window (x1,y1,x2,y2);
clrscr;
end;
begin
textbackground(white);
clrscr;
windows (cyan,2,6,23,17);
textcolor (red);
gotoxy(1,1);
for i:=2 to 21 do
begin
gotoxy (i,1); write (#205);
gotoxy (i,12); write (#205);
end;
for i:=2 to 11 do
begin
gotoxy (1,i); write (#186);
gotoxy (22,i); write (#186);
end;
gotoxy(6,1);
write;
window (3,7,22,15);
textcolor (yellow);
writeln;
writeln;
writeln;
writeln;
textcolor(red+blink);
write (' Нажмите ENTER...');
readln;
windows (cyan,25,6,60,20);
textcolor (red);
gotoxy(1,1);
for i:=2 to 35 do
begin
gotoxy (i,1); write (#205);
gotoxy (i,15); write (#205);
end;
for i:=2 to 14 do
begin
gotoxy (1,i); write (#186);
gotoxy (36,i); write (#186);
end;
gotoxy(9,1);
write(' Постановка задачи ');
window (26,7,59,24);
textcolor (yellow);
write('Ведомость на зарплату представлена как две таблицы');
write('Одна содержит фамилии работников цеха, а вторая - их зарплату за текущий месяц.');
write('Найдите фамилию работника,');
write('зарплата которого наименее отклонятеся от средней зарплаты всех работников за текущий месяц.');
write('Найдите фамилии дфух работников с наибольшей зарплатой.');
writeln('Удалите из ведемости на зарплату сведения о работнике, зарплата которого минимальна.');
textcolor(red+blink);
write('Для продолжения нажмите Enter...');
readln;
textbackground(white);
window(1,1,80,25);
clrscr;
windows (cyan,25,5,55,18);
textcolor (red);
gotoxy(1,1);
for i:=2 to 30 do
begin
gotoxy (i,1); write (#205);
gotoxy (i,14); write (#205);
end;
for i:=2 to 13 do
begin
gotoxy (1,i); write (#186);
gotoxy (31,i); write (#186);
end;
gotoxy(9,1);
write(' Ввод данных ');
window(26,6,54,17);
textcolor(yellow);
writeln;
S:=0;
clrscr;
For i:=1 to n do
begin
write('Введите фамилию ',i,' работника цеха: ');
Readln(a);
end;
for i:=1 to n do
begin
repeat
write('Введите зарплату ',i,' работника цеха: ');
Readln(b);
if b<=0 then
begin
writeln('Ошибка в записи зарплаты!!!');
writeln('Повторите ввод...');
end;
until (b>0);
end;
writeln;
textcolor(red);
writeln('Для продолжения нажмите Enter...');
Readln;
Clrscr;
textcolor(yellow);
writeln('|---------------|');
writeln('| Фамилия |');
writeln('|---------------|');
For i:=1 to n do
writeln('|',a:10,' |');
writeln('|---------------|');
textcolor(red);
writeln('Для продолжения нажмите Enter...');
readln;
clrscr;
textcolor(yellow);
writeln('|---------------|');
writeln('| Зарплата |');
writeln('|---------------|');
for i:=1 to n do
writeln('|',b:10,' |');
writeln('|---------------|');
textcolor(red);
writeln('Для продолжения нажмите Enter...');
Readln;
Clrscr;
textcolor(yellow);
for i:=1 to n do
begin
S:=s+b;
end;
S:=S/5;
write('Средняя зарплата за текущий месяц состовляет ');
write(S:2:3);
writeln;
textcolor(red);
writeln;
writeln('Для продолжения нажмите Enter...');
readln;
clrscr;
textcolor(yellow);
For i:=1 to n do
begin
k[i,1]:=abs(b-S);
k[i,2]:=i;
h:=k[1,1];
l:=1;
for i:=1 to n do
begin
if h>k[i,1]
then begin
h:=k[i,1];
l:=i;
end; end; end;
write('Работник зарплата которого наименее отклоняется от средней');
write
Другие языки программирования и технологии
не получается написать программу. помогите пожалик.
Program imya;
uses crt;
type
qwert = record
fam: string[20];
zarplata: integer;
end;
var
A : array [1..100] of qwert;
max,n,j,i,ZarpObw : integer;
s : string[20];
k:integer;
ZarplataSr:real;
begin
ZarpObw:=0;
Clrscr;
Writeln(' Vvedite kolichestvo zapisey ') ;
writeln;
readln(n);
Clrscr;
for j:=1 to n do
begin
write(' Vvedite familiyu ',j,' rabotnika ') ;
readln(A[j].fam);
Write(' Vvedite zarplatu ') ;
readln(A[j].zarplata);
clrscr;
ZarpObw:=ZarpObw+A[j].zarplata;
end;
{РАСЧЕТ СРЕДНЕЙ ЗАРПЛАТЫ}
ZarplataSr:=ZarpObw/n;
{СОРТИРОВКА ТАБЛИЦЫ}
for i:=1 to n do
for j:=1 to n-1 do
if a[ j ].zarplata< a[ j +1].zarplata then
begin
s:=A[j].fam; k:=A[j].zarplata;
a[ j ].fam:=a[ j +1].fam; a[ j ].zarplata:=a[ j +1].zarplata;
a[ j +1].fam:=s; a[ j +1].zarplata:=k;
end;
{ВЫВОД ТАБЛИЦЫ НА ЭКРАН}
writeln(' ---------------------------------------');
writeln(' Familiya I zarplata');
writeln(' ---------------------------------------');
for j:=1 to n do writeln( ' I ',A[j].fam, ' I ',A[j].zarplata , ' I ' );
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{вывод 2 работников с максимальными зарплатами}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to 2 do writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{вывод работника зарплата которого наименее отклонятеся от средней зарплаты всех работников за текущий месяц}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to n do
begin
if (a[ j ].zarplata = ZarplataSr) then writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
if (a[ j ].zarplata > ZarplataSr) and (ZarplataSr>a[ j+1 ].zarplata) then
writeln(' I ',A[j+1].fam, ' I ',A[j+1].zarplata, ' I ');
end;
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{Удаление из ведемости на зарплату сведения о работнике, зарплата которого минимальна}
A[n].fam:=''; A[n].zarplata:= 0;
n:=n-1;
{вывод результата на экран}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to n do
begin
writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
end;
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
Writeln(' Programma zavershila rabotu') ;
Writeln(' Nezmite Enter dla zaverchenia') ;
readkey;
end.
uses crt;
type
qwert = record
fam: string[20];
zarplata: integer;
end;
var
A : array [1..100] of qwert;
max,n,j,i,ZarpObw : integer;
s : string[20];
k:integer;
ZarplataSr:real;
begin
ZarpObw:=0;
Clrscr;
Writeln(' Vvedite kolichestvo zapisey ') ;
writeln;
readln(n);
Clrscr;
for j:=1 to n do
begin
write(' Vvedite familiyu ',j,' rabotnika ') ;
readln(A[j].fam);
Write(' Vvedite zarplatu ') ;
readln(A[j].zarplata);
clrscr;
ZarpObw:=ZarpObw+A[j].zarplata;
end;
{РАСЧЕТ СРЕДНЕЙ ЗАРПЛАТЫ}
ZarplataSr:=ZarpObw/n;
{СОРТИРОВКА ТАБЛИЦЫ}
for i:=1 to n do
for j:=1 to n-1 do
if a[ j ].zarplata< a[ j +1].zarplata then
begin
s:=A[j].fam; k:=A[j].zarplata;
a[ j ].fam:=a[ j +1].fam; a[ j ].zarplata:=a[ j +1].zarplata;
a[ j +1].fam:=s; a[ j +1].zarplata:=k;
end;
{ВЫВОД ТАБЛИЦЫ НА ЭКРАН}
writeln(' ---------------------------------------');
writeln(' Familiya I zarplata');
writeln(' ---------------------------------------');
for j:=1 to n do writeln( ' I ',A[j].fam, ' I ',A[j].zarplata , ' I ' );
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{вывод 2 работников с максимальными зарплатами}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to 2 do writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{вывод работника зарплата которого наименее отклонятеся от средней зарплаты всех работников за текущий месяц}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to n do
begin
if (a[ j ].zarplata = ZarplataSr) then writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
if (a[ j ].zarplata > ZarplataSr) and (ZarplataSr>a[ j+1 ].zarplata) then
writeln(' I ',A[j+1].fam, ' I ',A[j+1].zarplata, ' I ');
end;
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
{Удаление из ведемости на зарплату сведения о работнике, зарплата которого минимальна}
A[n].fam:=''; A[n].zarplata:= 0;
n:=n-1;
{вывод результата на экран}
writeln;
writeln(' ---------------------------------------');
writeln('I Familiya I zarplata I');
writeln(' ---------------------------------------');
for j:=1 to n do
begin
writeln(' I ',A[j].fam, ' I ',A[j].zarplata, ' I ');
end;
writeln(' ---------------------------------------');
Writeln(' Nezmite Enter dla prodoljeniya') ;
readkey;
Clrscr;
Writeln(' Programma zavershila rabotu') ;
Writeln(' Nezmite Enter dla zaverchenia') ;
readkey;
end.
100$. Очевидно же.
Для таких целей - есть мыло, куда можно отправить файл в читабельном виде...
Похожие вопросы
- Паскаль написать программу помогите. срочно. Пожалуйста
- Нужно написать программу (помогите с алгоритмом) с++
- Помогите написать программу со switch в СИ
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите на С# написать программу на поиск Синуса с косинусом.
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Помогите по С++ написать программу
- Помогите написать программу выключения компьютера на С++
- Помогите написать программу на Visual Basic (найти ошибку)
- Помогите пожалуйста написать программу в с++