T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 81
Reģistrētie lietotāji online: 0
Viesi online: 81
Uzdevums ir uzrakstīt programmu pascal vidē, kura atrod ievadītajam skaitlim N tuvāko divnieka pakāpi X, kas ir lielāka par N. Ja 2^X=N
{Esmu pirmā kursa students, tādēļ īpaši neko nesaprotu vēl no pascal
Paldies :)}
KaNeiet rakstīja:
Kādu palīdzību? Neredzu uzrakstīto programmu. Ja gribi, lai to dara kāds cits - neredzu summu.
Pamatkonstrukcijas aprakstītas, piemēram, http://www.liis.lv/nps/
Konkrētajā uzdevumā dali skaitli ar 2 un skaiti - cik reizes izdevās iegūt veselu skaitli.
Nu beidz Summu tādai elementārai programmai :D
Bet paldies par padomu :)
program figna;
var
n, m: integer;
i: integer = 0;
begin
Write('N = ');
ReadLn(n);
m := n;
while m > 1 do
begin
i := i + 1;
m := m div 2;
end;
i := i + 1;
m := Round(Exp((i) * Ln(2)));
WriteLn('Atbilde: ', i, ' (2^', i, ' = ', m, ')');
WriteLn(m div 2, ' <= ', n, ' < ', m);
ReadLn;
end.
// Saucās - nesapratu uzdevumu...
damncrow rakstīja:
program figna;
var
n, m: integer;
i: integer = 0;
begin
Write('N = ');
ReadLn(n);
m := n;
while m > 1 do
begin
i := i + 1;
m := m div 2;
end;
i := i + 1;
m := Round(Exp((i) * Ln(2)));
WriteLn('Atbilde: ', i, ' (2^', i, ' = ', m, ')');
WriteLn(m div 2, ' <= ', n, ' < ', m);
ReadLn;
end.
// Saucās - nesapratu uzdevumu...
Paldies - mana versija bija
var
N, x: integer;
Begin
write('Введите: ');
readln(N);
x:=1;
while exp(ln(2)*x)<N do
inc(x);
if exp(ln(2)*x)=N then
Writeln('2^',x,' = ',N)
else
Writeln('X= ',x);
End.
bet tur kkas nesanāca :)
Pēc #3 koda:
N = 1
Atbilde: 1 (2^1 = 2) // 2^0=1, tatad atbilde 0
1 <= 1 < 2
N = 2
Atbilde: 2 (2^2 = 4) //2^1=2 , atbilde 1
2 <= 2 < 4
N = 3
Atbilde: 2 (2^2 = 4) // Nu šis ok
2 <= 3 < 4
N = 4
Atbilde: 3 (2^3 = 8) // 2^2=4 atbilde 2
4 <= 4 < 8
N = 16
Atbilde: 5 (2^5 = 32) // 2^4=16 atbilde 4
16 <= 16 < 32
Lūk mans risinājums, risinājums nav tas labākais, bet ņemot vērā, ka šī bija pirmā programma, kuru pats uzrakstīju.
program div_pak;
uses crt;
var n,b,a,o:real;
Label Fin, error, last, first;
begin
first:
clrscr;
a:=0;
b:=1;
Writeln('Shi programma izvada tuvako 2 pakapi ievaditajam skaitlim. ');
error:
Writeln('Ievadiet n , (n>=0) ');
Readln(n);
If n<0 then goto error;
If n=0 then
begin
Writeln('Skaitlim ',n:2:0,' tuvaka divnieka pakape',a:2:0,' 2^',a:2:0);
GoTo Fin;
end;
repeat b:=b*2; a:=a+1; until b>=n;
If n=b then
Writeln('Ievaditais skaitlis ',n:2:0,' ir vienads ar 2 ',a:2:0, ' pakape!')
else
Writeln('Ievaditais skaitlis ',n:2:0,' ir mazaks par 2 ',a:2:0, ' pakape!');
Fin:
Writeln('Programmas beigas');
Writeln('Lai turpinatu programmu spediet 1, ja velaties beigt programmu, spiediet 0');
Readln(o);
If o=0 then goto last else goto first;
readkey;
last:
end.
uzdevum jau izpildīts, bet iesaku aizmirst operatoru GOTO!
izmanto repeat vai while nosacījuma ciklus un, turpinot apgūt programmēšanu,
veiksmīgi var izmantot lietotāja definētas f-jas un procedūras.
uztaisi šo pašu bez GOTO operatoriem un būsi jau nākamajā līmenī. :)
Uzdrīkstēšos oponēt :)
GOTO nav nekas izskaužams. Ja vien nesāk aunapieres izdarības, kā lekt iekšā ciklos vai ārā no tiem. Ja to iemācās un netaisa pārlieku spagetti, konsoļu programmās GOTO izrādās reti noderīgs.
ilgi tirinaajos, rakstiit, vai nerakstiit atsevishkju komentaaru. Buutiiba ir taada, ka pilniiba piekriitu #8, un veeleejos pajautaat #7, ko taadu ieguust, neizmantojot sho komandu- sarezgjiitaaku algoritmu, kur paaradresaacijas gala kompilaacijaa buus vairaak, noslogos sisteemu vairaak? jautaaju to, kaa assemblera programmeetaajs, nevis 'lai programma izskatiitos iisaaka' staipiitaajs.
P.S. parasti aatrdarbiigaakaas, efektiivaakaas programmas ir nedaudz lielaakas par liidzveertiigaam, bet leenaakaam.
#9:
no pieredzes: cilvēks nespēj strādāt lielākā projektā, mocās līdz spēj augstvērtīgi programmēt OOP :)
#10
suudiigi cilveeki, ja nespeej straadaat savaa jomaa profesionaali. visticamaak- bez izgliitiibas :( nothing personal :)
#9: uzturamību iegūst.
Jedritvai nazīt, ja lielā projektā kāds izdomā savus globāļus lietot un glabāt tmp mainīgos sesijā, jo neprot nodot mainīgos starp funkcijām un logiem, tad var iet nosisties pret sienu uzreiz, jo tāds kods bieži vien ir grūti uzturams.
Cilvēki ar laiku pasaka - "šito palagu es nepārtaisīšu". Ja viens vidusmēra jaunietis atsakās to labot, otrs atsakās un ir jāpiesaista eksperti, kas milzīgus palagus var pēc tam pielāgot, tad labs OOP ir DAUDZ uzturamāks un strukturētāks. Da kaut sakarīgs kods, bet ne jau mudžekļains koda palags ar, nedod dies`, vēl mudžekļainākiem tikai sev saprotamiem nosacījumiem, ko iebāzt negaidītās vietās. Lietojot GOTO utml negaidītus pavērsienus, cilvēki bieži vien neiemācās lietot parametrizāciju un klases, lai otrs uzreiz saprastu, kur notiek kura funkcionalitāte. Viņi prot tikai drukāt palagus un pieķibināt kaut ko klāt "uz puņķa", kur ienāk prātā, tā ka ir jāizlasa viss kods pilnībā, lai saprastu, kāda mārrutka pēc sistēma pēkšņi rāda uz pogas 3 punktiņus, nevis gaidāmo tekstu. Jo kāds ir uzlicis, ka tā jābūt, ja loga teksts satur tekstu "lietotāj" un veiksmīgi balstījis uz šī nosacījuma funkcionalitāti jau vairākos citos logos :) Murgus sarakstīt ir vienkārši, ja ir apņēmība un laiks, bet labot un uzturēt to - grūtāk.
Viena kodera projektos vaut vai savu interpretatoru taisīt un lietot mainīgos ar nosaukumiem ķīniešu valodā, taču lielās sistēmās labās prakses ievērošana mežonīgi atvieglo sistēmas augšanu un uzturēšanu. Nu kaut vai tas, ka cilvēki ar bakalaura diplomu IT joprojām nezina, kāda jēga ir no 1. normālformas, ja var vienārši glabāt laukā serializētus vai ar semikolu atdalītus masīvus. Nu un, ka meklēšanu vai atlasīšanu pēc tam nevarēs normāli sataisīt pie 10GB datu? Tagad takš strādā viss ;)
#12: tieši tā :)
diemžēl to reāli parāda statistika bakalauros, kur no 30 cilvēku grupas labi ja 2 vai 3 ir spējīgi to izprast. Pārējie diemžel iziet darba tirgū ar diplomu, bet programmēt nemāk, nemaz nerunājot par programmatūras specifikācijas izstrādi.
Uz programmēšanu ir gatavi doties liela daļa bakalauru, "jo tur pieklājīgi maksā", un tas ir tikai apsveicami, taču vispirms vajag tiem pašiem mājās pasēdēt un pataisīt savas sistēmas, lai izslimotu bērnu slimības - jau minētās koda tizlības, lai paši saprastu, kāpēc nav labi visu funkcionalitāti uzrakstīt garā 10KB palagā, bez funkcijām vai ar murgainu loģiku. Lieta tāda, ka arī firmās koda analīze NETIEK veikta - tjp, ja students kaut kā nebūt atķeksē "uzdevums paveikts", tad viss - ar to pietiek. Un tāpēc arī bieži vien netiek veicināta izaugsme, lai zaļu studentu rosinātu rakstīt sakarīgu, uzturamu kodu. Bet tā jau ir vadītāja atbildība - ja to neņem vērā, tad pats vainīgs, ka firmai funkcionalitātes izmaiņas prasa ilgāku laiku.
Es klusētu, ja šāda viltīgā loģika bieži vien neietu rokrokā ar tizlu uzturamību.
#13: specifikācijas uzrakstīt - oi, tav nav grūti. 1 rindopa: "Uztaisi, lai klients var parakstīt datus ar savu kartiņu. Punkts". Tā bieži vien skaitās specifikācija ;)
vot, projektējuma arhitektūra (PPA)- tas jau ir sarežģītāk, un tur ar mācēšanu pateikt "davai, izdari tur kaut ko" nepietiek.
Tas ir skaidrs, kā diena, ka es piederu pie tiem kretīniem, kas raksta galīgi greizu kodu. Un PPA uzrakstīt es tiešām nejēdzu (lai gan kurss tāds bija, aha) :D
Bet kā jau augstāk cilvēks atsaucās uz asembleri: galu galā procesors vienalga beigās kaut kur redz CMP-JE/JNE/etc.. Kas pēc būtības tas pats IF-GOTO vien ir. Vai arī es esmu totāls zābaks...
Principā jau te pamācoša diskusija izvērtās, to nevar noliegt :)
Kādu palīdzību? Neredzu uzrakstīto programmu. Ja gribi, lai to dara kāds cits - neredzu summu.
Pamatkonstrukcijas aprakstītas, piemēram, http://www.liis.lv/nps/
Konkrētajā uzdevumā dali skaitli ar 2 un skaiti - cik reizes izdevās iegūt veselu skaitli.