![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Yurka |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 143 Пол: Мужской Репутация: ![]() ![]() ![]() |
есть такое задание, вроде и несложно, только у меня проблема с процедурами появилась, заштопорился (почти всю ночь на спал), помогите чем сможете...
условие такое: определить зарплати каждого сотрудника за каждый месяц, которые он получил после высчитывания налога. Вывести начальные даные и полученные результаты, использовать двумерный массив. По этому условию нужно написать три программы: 1-ую просто с обработкой массива, 2 -ую использовав процедуры и функции (причём сама программа должна иметь только вызовы процедур), 3-ью использовав для хранения начальных результатов ы промежуточных значений типизированые файлы. Вот первая: Код uses crt; const M=12; Var zp:array [1..100,1..M] of real; i,j,k,P:word; Begin clrscr; write ('k-stvo sotrud K='); readln(K); for i:=1 to K do for j:=1 to M do begin write ('zar_plata ',i,' sotrud za ',j, ' meciac Zp=' ); readln(zp[i,j]); end; write ('nalog v % P='); readln(P); writeln ('zar_platu bez naloga'); writeln; write ('nomer m '); for j:=1 to m do write(j,' m '); writeln; for i:=1 to K do begin write (i,'sotrud '); for j:=1 to M do begin write (zp[i,j]:0:1 ); write(' '); end; writeln; end; writeln; writeln ('zar_platu posle naloga'); writeln; write ('nomer m '); for j:=1 to m do write(j,' m '); writeln; for i:=1 to K do begin write (i,'sotrud '); for j:=1 to M do begin write (zp[i,j]-((zp[i,j]/100)*P):0:1); write(' '); end; writeln; end; readkey End. тут вроде как всё нормально, на её основе я сделал вторую: Код uses crt; const M=12; Type masiv=array [1..100,1..m] of real; procedure vvod(var zp:masiv; K:integer); var i,j:integer; begin write ('k-stvo sotrud K='); readln(K); for i:=1 to K do for j:=1 to M do begin write ('zar_plata ',i,' sotrud za ',j, ' mecyac Zp=' ); readln(zp[i,j]); end; End; Procedure Nalog(var Zp:masiv; K:integer); var P:real; j,i:integer; Begin write ('nalog v % P='); readln(P); writeln; writeln ('zar_platu posle naloga'); writeln; write ('nomer m '); for j:=1 to M do write(j,' mic '); writeln; for i:=1 to K do begin write (i,' sotrud '); for j:=1 to M do begin write (zp[i,j]-((zp[i,j]/100)*P):0:1); write(' '); end; writeln; end; End; Procedure Vuvod(var Zp:masiv;K:integer); var j,i:integer; Begin writeln ('zar_platu bez naloga'); writeln; write ('nomer m '); for j:=1 to m do write(j,' mic '); writeln; for i:=1 to K do begin write (i,' sotrud '); for j:=1 to M do begin write (zp[i,j]:0:1 ); write(' '); end; writeln; end; End; VAR a:masiv; kl:integer; BEGIN clrscr; vvod(a,kl); vuvod(a,kl); nalog(a,kl); readkey END. выдаёт бред, что не так? и если кто подскажет как третью переработать буду очень благодарен |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 6:57 |