Программисты как и все любят получать зарплату. Она может варьироваться от большого количества факторов. Например, от количества отработанных часов, бонусов от закрытия проектов, количества проработанных лет, должности, дополнительных обязанностей, премий, штрафов и т.д. Гриша следит за своим заработком и старается перепроверять правильность начисления заработной платы. Однако, параметров для расчета довольно много, поэтому каждый раз делать расчет на калькуляторе не удобно. К сожалению, у Гриши постоянно не хватает времени, чтобы автоматизировать этот процесс, поэтому он по вашей Заработная плата является вещественным числом. Она зависит от параметров: a – минимальный размер оплаты труда (МРОТ), b – от надбавки за должность, c – от коэффициента дополнительных обязанностей, d – от количества лет, проработанных в компании, e – от количества отработанных часов в месяц, f – от штрафов за опоздания, g – от бонусов за закрытия проекта, h – от месячных премий.
Обычно Гриша работает 40 часов в неделю, но иногда ему приходится задерживаться на работе. Согласно трудовому кодексу РФ заработная плата за переработанные часы (для Гриши сверх 168 часов в месяц) оплачивается:
За первые 2 часа не менее, чем в полуторном размере
За последующие часы - не менее чем в двойном размере
Количество отработанных за месяц часов e=i+j+k, где i – количество часов, отработанных по стандартной ставке, j – по ставке x1.5, k – по ставке x2.
Для расчета заработной платы Гриша использовал формулу:
c(a+b)(1+4^√d)/168*((i+1.5j+2k)−f+1.1(g+h как записать эту формулу в паскале
procedure nod( var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real; ); var a:array[1..6] of real; i : integer; begin dv1:=100; tr1:=100; pt1:=100; for i:= low(a) to high (a) do begin readln(a[i]); repeat if( (a[i] mod 2) =0) then begin a[i]:=a[i]/2; dv:=dv+1; end else if( ( a[i] mod 3)=0) then begin a[i]:=a[i]/3; tr:=tr+1; end else if ( ( a[i] mod 5)=0) then begin a[i]:=a[i]/5; pt:=pt+1; end;
untill(a=1); if dvif trif ptdv:=0; tr:=0; pt:=0; end; if dv1>0 then dv2:=dv1*2 else dv2:=1; if tr1>0 then tr2:=tr1*3 else tr2:=1; if pt1>0 then pt2:=pt1*5 else pt2:=1; nod:=dv2*tr2*pt2; writeln(nod); end; begin nod( dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 ); end.
Відповідь:
#include <iostream>
using namespace std;
void sortmaxtomin(int *arr){
for(int i = 0; i < 7;i++){
for(int j = 0; j < 6; j++){
if(arr[i] > arr[j]){
swap(arr[i], arr[j]);
}
}
}
}
void sortmintomax(int *arr){
for(int i = 0; i < 7;i++){
for(int j = 0; j < 6; j++){
if(arr[i] < arr[j]){
swap(arr[i], arr[j]);
}
}
}
}
void printarr(int *arr){
for(int i = 0; i < 7; i++){
cout << arr[i] << " ";
}
}
int main(){
setlocale(LC_ALL , "Rus");
int A[] = {20,110,40,775,95,145,1100};
cout << "Массив: ";
printarr(A);
cout << "\nСортировка по убыванию: ";
sortmaxtomin(A);
printarr(A);
cout << "\nСортировка по возрастанию: ";
sortmintomax(A);
printarr(A);
return 0;
}