ПРОГРАМИРАЊЕ И ПРОГРАМСКИ ЈАЗИЦИ

Статус
Затворена за нови мислења.

IGI

Il Corvo
Член од
12 февруари 2006
Мислења
385
Поени од реакции
4
јахутерминал пробај да ги исполниш сите услови. Вака како ти што си го направил е многу по лесно.
 
Член од
19 септември 2005
Мислења
5.616
Поени од реакции
180
IGI напиша:
Почетник сум во Java. Пред некој ден го направив програмов за евидентирање на платежни чекови.

На кратко ке ја објаснам програмата:
Прво те прашува за името на вработениот.
После те прашува колку ке го платиш од саат.
После те прашува за секој ден од понеделник до петок колку часа работел.
- Ако работел до 8 саати ке му бидат платени тие 8, ако работи поише од 8 секој следен час ке му биде платен како 1.5 часа. Највеке може да работи 10 саати.

Потоа те прашува колку работел во сабота.
Ако од понеделник до петок има направено повеке од 40 часа, секој час во сабота му е платен како 1.5 час.
Ако на пример од понеделник до петок има 38 часа, а во сабота 5, 2 од сабота ке му бидат платени регуларно а другите 3 како 1.5 часа.
Во сабота може да работи највеке 5 часа.
Сега едно не разбирам... зошто би давал услови, ако работи од 8 до 10 часа во денот? Па може само на крај, доколку работи повеќе од 40 часа останатите сметај ги по 1.5 :) едноставно е, резултатот е ист, а програмата, многу помала. Јаху ок е ова твоето, но не се придржваш кон ниеден услов... тоа е проблемот

Eве како би го решил во C#
Код:
        string ime;
        double pon, vtor, sred, cetv, peto, sabo, pari;
        double vkupno, krajnacena;
        ime = TextBox1.Text;
        pari = Convert.ToInt32(TextBox2.Text);
        pon = Convert.ToInt32(TextBox3.Text);
        vtor = Convert.ToInt32(TextBox4.Text);
        sred = Convert.ToInt32(TextBox5.Text);
        cetv = Convert.ToInt32(TextBox6.Text);
        peto = Convert.ToInt32(TextBox7.Text);
        sabo = Convert.ToInt32(TextBox8.Text);
        vkupno = pon+vtor+sred+cetv+peto+sabo;
        if (vkupno > 40)
        {
            krajnacena = 40 * pari + (vkupno - 40) * pari * 1.5;
        }
        else
        {
            krajnacena = vkupno * pari;
        }
        Label1.Text = "Kratok pregled za rabotnikot " + ime + "<br>Vkupno rabotel " + vkupno + " casa<br>Vkupno zarabotil " + krajnacena + " denari";
 

IGI

Il Corvo
Член од
12 февруари 2006
Мислења
385
Поени од реакции
4
Димитар напиша:
Сега едно не разбирам... зошто би давал услови, ако работи од 8 до 10 часа во денот? Па може само на крај, доколку работи повеќе од 40 часа останатите сметај ги по 1.5 :) едноставно е, резултатот е ист, а програмата, многу помала. Јаху ок е ова твоето, но не се придржваш кон ниеден услов... тоа е проблемот
Другар нема да биде исто. Да речеме дека во понеделник работел 10 часа, 8 ке му бидат платени регуларно а другите 2 * 1.5. Вторник до петок работи по 2 саати.. значи не поминува 40 таа недела али сепак има 2 часа * 1.5. Твојата варијанта не би пресметала така.
 

јахутерминал

impressed by gay people
Член од
26 јануари 2007
Мислења
778
Поени од реакции
7
Абе таман е. Можам да направам ако работи над 10 часа да додаде уште неколку долари во касата. Инаку јас не го правев исто како IGI. Слично е.
 
Член од
19 септември 2005
Мислења
5.616
Поени од реакции
180
IGI напиша:
Другар нема да биде исто. Да речеме дека во понеделник работел 10 часа, 8 ке му бидат платени регуларно а другите 2 * 1.5. Вторник до петок работи по 2 саати.. значи не поминува 40 таа недела али сепак има 2 часа * 1.5. Твојата варијанта не би пресметала така.
Ок, не го сфатив баш условот... еве го, сепак не е толку код како кај тебе.... Сега е ОК, според сите услови што се бараат. Ова е во C#, го средив во функција

PHP:
    protected void Presmetka(string ime, int pari, int[] den)
    {
        double vkupno=0, krajnacena=0;
        ime = TextBox1.Text;
        pari = Convert.ToInt32(TextBox2.Text);
        for (int i = 0; i < 5; i++)
        {  
            if (den[i] > 8) krajnacena += 8 * pari + (den[i] - 8) * pari * 1.5;
            else krajnacena += den[i] * pari;
            vkupno += den[i]; 
        }
        if ((vkupno > 40)) krajnacena += den[6] * pari * 1.5;
        if ((vkupno < 41) && ((vkupno + den[6]) > 40)) krajnacena += (40 - vkupno) * pari + (den[6] - (40 - vkupno)) * pari * 1.5;
        if ((vkupno < 41) && ((vkupno + den[6]) < 41)) krajnacena += den[6] * pari;
        vkupno = vkupno + den[6];      
        Label1.Text = "Kratok pregled za rabotnikot " + ime + "<br>Vkupno rabotel " + vkupno + " casa<br>Vkupno zarabotil " + krajnacena + " denari";
    }
Се повикува
PHP:
 int[] den = {Convert.ToInt32(TextBox3.Text), Convert.ToInt32(TextBox4.Text), Convert.ToInt32(TextBox5.Text),Convert.ToInt32(TextBox6.Text),Convert.ToInt32(TextBox7.Text), Convert.ToInt32(TextBox8.Text) };
        Presmetka(TextBox1.Text, Convert.ToInt32(TextBox2.Text), den);
еве скриншот ако има внесето точни вредности


А еве ако има неправилни
 

IGI

Il Corvo
Член од
12 февруари 2006
Мислења
385
Поени од реакции
4
јахутерминал напиша:
Абе таман е. Можам да направам ако работи над 10 часа да додаде уште неколку долари во касата. Инаку јас не го правев исто како IGI. Слично е.
Слично ама многу многу полесно да се направи.
Иначе ми се свиѓа ова на Димитар:).
 

MkForces

тантара пантара
Член од
25 јануари 2007
Мислења
600
Поени од реакции
19
Многу интересна идеја е ова, една програма да се направи во повеќе програмски јазици, и да се прави споредба меѓу кодовите... Мене искрено најповеќе ми се допадна кодот на Димитар, бидејќи ми се виде најпрост и најкомпактен, а ја врши истата работа... Да знаев програмирање нешто повеќе, и јас ќе придонесев за темава, ама тоа покасно, затоа што се занимавам со други работи моментално.
 

bad_boy

Шчо САќАШ Мори
Член од
25 јануари 2007
Мислења
292
Поени од реакции
6
јахутерминал напиша:
Иначе сега ќе преминам и на VB.NET, имам книга од Славчо Горчески и така, уште малку ми остана Pascal.
TOA NE E ZA NET TOA E ZA VB 6!
 
Член од
19 септември 2005
Мислења
5.616
Поени од реакции
180
Има и таква и таква книга, но не ви треба.... се што ви треба е ASP.NET видео туториалите (www.asp.net). Ако ги поминете тие! наздравје!

П.С. Малку го менав горе кодот (го намалив) сега е уште помалку
 

јахутерминал

impressed by gay people
Член од
26 јануари 2007
Мислења
778
Поени од реакции
7
IGI еве го целиот програм со сите услови:
Код:
program vraboten;
uses
wincrt;
var ime:string;
    pari,pariV,saati1,saati2,n:real;
    i:integer;

begin
writeln('Dojbredojde vo programot na jaxyterminal');
writeln('Napisi go imeto na vraboteniot');
readln(ime);
writeln('Kolku ke go platis ',ime,' na saat (sumata e vo dolari)');
readln(pari);
n:=0;
pariV:=0;
for i:=1 to 5 do
begin
writeln('Napisi kolku saati rabotel den',' #',i,' i pritisni enter:');
repeat
readln(saati1);
if saati1>10 then writeln('Vnesete cas ispod 10 ili 10');
until (saati1<=10);
n:=saati1+n;

if saati1<=8 then pariV:=pariV+saati1*pari;
if saati1>8 then pariV:=pariV+(saati1-(saati1-8))*pari+1.5*(saati1-8)*pari;

end;
writeln('Kolku saati rabotel vo sabota?');
repeat
readln(saati2);
if saati2>=6 then
writeln('Ve molime vnesete validnen broj na casovi (ispod 6)');
until (saati2<6);


writeln('Kratok pregled na vraboteniot ',ime);
writeln('Vkupno rabotni casa ',n+saati2:2:2);

if n>40 then saati2:=saati2*1.5;

pariV:=pariV+saati2*pari;

writeln('Vkupno zaraboteno ',pariV:2:2,'$');
writeln('Prijaten den');

end.
Еве го и во .exe екстензија. Поздрав.:helou:
 

Attachments

Член од
28 јануари 2007
Мислења
9.850
Поени од реакции
1.559
Da ne znajte nekoja elektronska bibloteka vo koja ke mozam da najdam knigi za C programiranje
 

Овердрајв

Модератор
Член од
5 ноември 2005
Мислења
4.255
Поени од реакции
569
Еве ја мојата интерпретација на програмата.. ништо посебно - 153 линии код, коментари и празни редови :)

Куцано во SciTE, пишувано во и компајлирано со AutoIt 3.
На латиница, за да не работам на слепо (мојава верзија на XP не поддржува локализација на македонски).. функциите се горе-доле исти, додаден е GUI :)

Кодот и exe фајлот се под сликата.

 

Attachments

Статус
Затворена за нови мислења.

Kajgana Shop

На врв Bottom