
- •2.1. Блок-схема алгоритму………………………………………………...…11
- •3.1. Текст програми на Pascal…...…………………………………………...18
- •Завдання №1.
- •Блок-схема алгоритму.
- •Текст програми на Qbasic.
- •Результат роботи програми на Qbasic.
- •Завдання №2.
- •2.1. Блок-схема алгоритму.
- •2.2. Текст програми на Pascal.
- •2.3. Результат роботи програми на Pascal.
- •Завдання №3.
- •3.1. Текст програми на Pascal .
- •3.2. Результат роботи програми на Pascal .
- •3.3. Текст програми на Qbasic .
- •3.4. Результат роботи програми на Qbasic .
- •Висновки
- •Список використаних джерел
2.3. Результат роботи програми на Pascal.
Завдання №3.
Скласти Basic- та Pascal-програми обчислення заробітної платні, податків та створити реестр перерахувань у банк для бригади робітників.
Відпрацьовано днів |
Прізвище та денна з/п |
% податку |
Видати додатково (за допомогою мню) |
0-24 |
даних
|
Якщо з/п <750 гр.- неоподатковувати, від 750 гр. до 1900 гр.-15%, більше 1900 гр. – 24% |
|
3.1. Текст програми на Pascal .
uses crt;
type
famil=record
fam:string;
zarpl:real;
day:integer;
polnzar:real;
chiszar:real;
end;
const
rabotn:array[1..10] of string[20]=('Дереновская','Дирявченко','Каплун','Квитко',
'Малая','Миколаенко','Нелипа','Попова','Решетняк','Ткаченко');
var
i,j,nalog:integer;
n:array[1..10] of string[20];
d:array[1..10] of integer;
z,zr,nal:array[1..10] of real;
a:array[1..10] of famil;
k:array[1..10] of real;
nom:array[1..10] of real;
f2:file of famil;
m:integer;
fs:string;
begin clrscr;
assign(f2,'Zarpla.ta');
rewrite(f2);
randomize;
for i:=1 to 10 do begin
n[i]:=rabotn[i];
with a[i] do begin
k[i]:=random*(500);
fam:=rabotn[i] ;
zarpl:=k[i];
end;end;
write (' Программа расчёта зароботной платы работников ');
write('№ Фамилия Дни Дн.Зарп Процент Зарплата');
writeln;
writeln('----------------------------------------------------');
for i:= 1 to 10 do begin
nom[i]:=i;
gotoxy(1,i+2); write(nom[i]:2:0);
with a[i] do begin
gotoxy(5,i+2);
write(fam);
d[i]:=random(25);
gotoxy(15,i+2);
writeln('',d[i]:5);
z[i]:=k[i]*d[i];
gotoxy(20,i+2);
write(z[i]:10:2);
if z[i]<750 then begin
gotoxy(40,i+2);
writeln(z[i]:12:2);
gotoxy(33,i+2);
writeln (nal[i]:4:2,'%');
end else if (z[i]>750) and (z[i]<1900) then begin
gotoxy(40,i+2);
zr[i]:=(z[i]-((z[i]*15)/100));
writeln(zr[i]:12:2);
nal[i]:=z[i]*0.15;
gotoxy(33,i+2); writeln (nal[i]:4:2,'%');
end else if z[i]>1900 then begin
gotoxy(40,i+2);
zr[i]:= (z[i]-((z[i]*24)/100));
nal[i]:=z[i]*0.24;
writeln(zr[i]:12:2);gotoxy(33,i+2); writeln (nal[i]:4:2,'%');
end;
end;
end;
writeln('----------------------------------------------------');
writeln('Список работников которые получили меньше 3000 грн');
for i:=1 to 10 do begin
if zr[i]<3000 then writeln(' ',rabotn[i]);
end;
writeln('----------------------------------------------------');
writeln('введите фамилию:');
readln(fs);
for i:=1 to 10 do
if fs=rabotn[i] then begin
writeln(' ',rabotn[i],' ',d[i],' ',z[i]:4:2,' ',nal[i]:4:2,'%',' ',zr[i]:4:2);
end;
readkey;
end.
3.2. Результат роботи програми на Pascal .
3.3. Текст програми на Qbasic .
CLS
PRINT " Программа расчета заработной платы работников"
PRINT " № Фамилия Дневная з\п Дни З\п всего Снято гр К выдаче"
DIM f$(10)
DIM z(10)
DIM day(10)
DIM zar(10)
DIM s(10)
DATA "Петров",150,"Сидоров",170,"Иванов",290,"Шевченко",300,"Зеленов",320,"Котов",280,"Кашин",320,"Нелипа",230,"Попов",330,"Дрягин",240
RANDOMIZE TIMER
FOR i = 1 TO 10
READ f$(i)
READ z(i)
day(i) = INT(25 * RND)
zar(i) = z(i) * day(i)
IF zar(i) < 750 THEN zarp(i) = zar(i)
IF (zar(i) >= 750) AND (zar(i) <= 1900) THEN zarp(i) = zar(i) - ((zar(i) * 15) / 100)
IF (zar(i) > 1900) THEN zarp(i) = zar(i) - ((zar(i) * 24) / 100)
IF zar(i) < 750 THEN nal = 0
IF (zar(i) >= 750) AND (zar(i) <= 1900) THEN nal = 15
IF (zar(i) > 1900) THEN nal = 24
IF (zar(i) >= 750) AND (zar(i) <= 1900) THEN s(i) = zar(i) * .15
IF zar(i) > 1900 THEN s(i) = zar(i) * .24
PRINT USING "## "; i;
PRINT f$(i)
LOCATE i + 3, 15: PRINT USING " ###.##"; z(i);
PRINT USING " ###"; day(i);
PRINT USING " #####.##"; zar(i);
PRINT USING " ####.##%"; s(i);
PRINT USING " #####.##"; zarp(i)
NEXT
PRINT "Список работников которые получили меньше 3000 грн"
FOR i = 1 TO 10
IF zarp(i) < 3000 THEN PRINT " "; f$(i)
NEXT
INPUT "Введите фамилию - ", f$
FOR i = 1 TO 10
IF f$ = f$(i) THEN PRINT " "; f$(i), z(i), day(i), zar(i), s(i), zarp(i)
NEXT
END