Laboratoriniai darbai

Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais

9.4   (2 atsiliepimai)
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 1 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 2 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 3 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 4 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 5 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 6 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 7 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 8 puslapis
Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais 9 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

VILNIAUS UNIVERSITETAS EKONOMIKOS FAKULTETAS EKONOMINĖS INFORMATIKOS KATEDRA Darbas su paprastaisiais bei kai kuriais struktūriniais duomenų tipais I LABORATORINIS DARBAS Darbą tikrino doc. dr. Ona Barčkutė VILNIUS, 2002 m. Telefonų stoties abonentų ataskaitos skaičiavimas 1. Uždavinio esmė Programa, kurios sukūrimą numato ši užduotis, skirta telefonų stoties abonentų sarašui sudaryti ir kiekvienam iš jų pateikiamos sąskaitos sumai nustatyti. Programą galimą būtų naudoti nedidelėse telefonų stotyse, kai mėnesio pabaigoje pagal abonentų prakalbėto laiko duomenis ir esamą tarifą reikia apskaičiuoti kiekvieno abonento sąskaitos už paslaugas sumą. Ši programa žymiai palengvina darbą, nes ją naudojant reikia tik įvesti duomenys apie abonentus, o programa apskaičiuos sumą ir pateiks suvestinę ataskaitą. 2. Programos algoritmo blokinė schema Pagrindinės programos blokinė schema Funkcijos „gautiasmduomenys“ blokinė schema Funkcijos „gautikalb_trukme“ blokinė schema Procedūros „skaiciuok“ blokinė schema Procedūros „isvesti_rez“ blokinė schema 3. Panaudotos duomenų struktūros ir jų parinkimo pagrindimas Programoje panaudoti keli struktūriniai duomenų tipai. Tai yra mėnesių pavadinimų masyvas „mėnesiai“, įrašai „klientas“, susidedantys iš kelių laukų, kuriuose yra saugoma tokia informacija apie klientus, kaip vardas, pavardė, telefono numeris, kiekvieno mėnesio kalbėjimo trukmė, suma apmokėjimui bei paskutinė aptarnavimo kliento mėnuo. Be to, visų klientų įrašai sudaro įrašų masyvą „klientai“. Kiekviename įraše „klientas“ saugomi kaip pirminiai, taip ir rezultatiniai duomenys. Pirminiai duomenys — tai „vardas“ (string), „pavarde“ (string), „tel_num“ (string) ir „pask_men“. Kintamajam „pask_men“ galima priskirti tik vieno iš mėnesių pavadinimą. Rezultatiniai duomenys — tai įrašo „klientas“ laukas „mok“ (real), jame laikoma sumą, kurią kiekvienas klientas turės apmokėti po sąskaitos pateikimo, šis laukas apskaičiuojamas programos vykdymo metu. Programos algoritme kliento vardas ir pavardė aprašomi kaip eilutės tipo kintamieji, t.y. ‚string‘, nes tai yra simbolių sekos, o joms labiausiai tinka ‚string‘ duomenų tipas. Telefono numeris irgi aprašytas kaip ‚string‘, nes jokių skaičiavimų su telefono numerių mes neatliekame, ir yra galimas atvejis, kad telefono numeriai bes saugomi su pašaliniais simboliais, pvz. 45-65-78. 4. Programos algoritmo struktūrograma Pagrindinės programos struktūrograma Pradžia... to be continued :) 5. Programos tekstas „Pascal“ kalba Pagrindinė programa program telefonu_stotis; uses crt; const maks_kl_sk = 10; maks_men_sk = 12; menesiai: array[0..11] of string = ('Gruodis','Sausis','Vasaris','Kovas','Balandis', 'Geguze','Birzelis','Liepa','Rugpjutis', 'Rugsejis','Spalis','Lapkritis'); type klientas = record vardas: string; pavarde: string; tel_num: string; kalb_trukme: array[1..maks_men_sk] of longint; mok: real; pask_men: 1..maks_men_sk; end; var klientai: array[1..maks_kl_sk] of klientas; tarifas: real; kl: 1..maks_kl_sk; menuo: integer; pabaiga: boolean; kl_sk: integer; function gautiasmduomenys(kl: integer): boolean; begin clrscr; with klientai[kl] do begin repeat writeln('Iveskite vartotojo varda [pvz. Jonas]'); readln(vardas); writeln('Iveskite vartotojo pavarde [pvz. Jonaitis]'); readln(pavarde); if (vardas = '') or (pavarde = '') then writeln('Irasykite varda ir pavarde'); until ((vardas'') and (pavarde '')); writeln('Iveskite vartotojo telefono numeri [pvz. 404012]'); readln(tel_num); end; end; function gautikalb_trukme(kl:integer): boolean; var laikas: string; valan: string; minut: string; tmp: longint; valcode: integer; men: 1..maks_men_sk; klaida: boolean; begin clrscr; klientai[kl].pask_men := 1; laikas:='x'; with klientai[kl] do for men:= 1 to maks_men_sk do if laikas '' then begin writeln('Vartotojas: ',vardas,' ',pavarde); writeln('Menuo: ',menesiai[men mod 12]); writeln('Iveskite vartotojo prakalbeta laika uz si menesi (vvvv:mm) [pvz. 12:05]'); writeln('Paspauskite tik ENTER, jeigu norite uzbaigti ivedima.'); repeat klaida:=false; readln(laikas); if (laikas'') then begin {jei ivesta ne tuscia eilute} valan := copy( laikas, 0, pos(':', laikas) - 1 ); minut := copy( laikas, pos(':', laikas) + 1, length(laikas)-pos(':', laikas) ); val(valan,tmp,valcode); if valcode0 then begin {jeigu negavom skaiciu} writeln('> neteisingai ivesti duomenis: '#13#10' laikas negali buti ',laikas); klaida:=true; end else begin {jeigu gavom skaiciu} kalb_trukme[men] := tmp*60; val(minut, tmp, valcode); if (valcode 0) or (tmp > 59) then begin {jeigu negavom skaiciu} writeln('> neteisingai ivesti duomenis: '#13#10' laikas negali buti ',laikas); klaida:=true; end else kalb_trukme[men] := kalb_trukme[men] + tmp; {jeigu gavom skaiciu} end; end else if men = 1 then begin writeln('> jus privalote nurodyti bent vieno menesio kalbejimo trukme'); klaida:=true; end else klientai[kl].pask_men := men - 1; until not (klaida);{jeigu padaryta klaida tai pakartoti ivedima} end; end; procedure isvesti_rez(kl:integer); var men: 1..maks_men_sk; per_metus: longint; sum_lt: real; begin per_metus := 0; sum_lt := 0; for men := 1 to 12 do per_metus := per_metus + klientai[kl].kalb_trukme[men]; sum_lt := per_metus * tarifas; with klientai[kl] do writeln('і',(copy(vardas,0,1)+'. '+ pavarde ):15,'і', per_metus:35,'і',sum_lt:25:2,'і'); end; procedure skaiciuok(kl: integer); var men: 1..maks_men_sk; begin with klientai[kl] do begin mok:=0; for men:= 1 to pask_men do mok := mok + tarifas * kalb_trukme[men]; end; end; begin clrscr; writeln('Iveskite minutes pokalbio kaina [pvz. 0.12]:'); readln(tarifas); pabaiga:=false; for kl:=1 to maks_kl_sk do if not pabaiga then with klientai[kl] do begin gautiasmduomenys(kl); gautikalb_trukme(kl); skaiciuok(kl); if pask_men > menuo then menuo := pask_men; writeln('Ar norite ivesti informacija apie dar viena klienta?[T/N]'); if upcase(readkey) = 'N' then pabaiga:=true; kl_sk := kl_sk + 1; end; clrscr; writeln('Ataskaita uz ',menuo,' menesi (-ius)',' nuo "Sausis" iki "',menesiai[menuo mod 12],'"'); writeln('іV. pavarde', 'іlaikotarpio kalbejimo trukme(min)':39,' і','viso moketi(lt)':25,'і'); for kl:=1 to kl_sk do with klientai[kl] do begin isvesti_rez(kl); end; readln; end. 6. Uždavinio sprendimo algorimo aprašymas Programoje atliekamas keletas darbų, kai kurie iš jų kartojasi, dėl to naudojamos paprogramės: procedūros ir funkcijos. Programos pradžioje aprašomi naudojami duomenų tipai, tarp kurių ir struktūriniai, kintamieji. Po to išdėstytos paprogramės: • Funkcija „gautiasmduomenys“, kuri naudojama asmeniniams (vardas, pavardė, telefono numeris) duomenims apie klientus įvesti. • Funkcija „gautikalb_trukme“, kuri naudojama klientų kalbėjimo trūkmei per kiekvieną mėnesį įvesti. Šioje paprogramėje realizuota įvedimo korektiškumo kontrolė ir įvestų duomenų formato keitimas, pavyzdžiui „15:45“, kur 15 reiškia valandų skaičių, o 45 – minučių skaičių, yra pakeičiamas į 15*60+45=945 minučių. • Procedūra „isvesti_rez“, kurios pagalba įvesti ir apskaičiuoti duomenys spausdinami ekrane. • Procedūra „skaiciuok“, kuri apskaičiuoja kiekvieno kliento suma apmokėjimui. Pradėjus vykdyti pagrindinę programą, iš pradžių vartotojo prašo įvesti pokalbio minutės kainą, po to programa nuosekliai kreipiasi į funkcijas „gautiasmduomenys“, „gautikalb_trukme“ ir procedūrą „skaiciuok“. Toliau vartotojo klausia, ar jis nori dar įvedinėti duomenis. Šių funkcijų ir procedūros ciklas yra kartojamas tol, kol nebus įvesti duomenys apie visus klientus ir vartotojas neatsakys „Ne“ į klausimą. Kai tik įvesti visi duomenys, programa formuoja išvedimo lentelę ir kreipiasi į procedūrą „isvesti_rez“, kuri spausdina pirminius ir rezultatinius duomenis lentelės pavidalu. Po to paspaudus ENTER klavišą programa baigia savo darbą ir grįžtama į „Pascal“ aplinką. 7. Programos vykdymo rezultatas Paleidus šią programą ir įvedus duomenis apie kelis abonentus gauname tokį rezultatą: Ataskaita uz 3 menesi (-ius) nuo „Sausis“ iki „Kovas“ V. Pavarde Laikotarpio kalbejimo trukme(min) Viso moketi(Lt) J. Jonaitis P. Baranauskas J. Panavas 2831 384 4724 339.72 46.08 566.88

Daugiau informacijos...

Šį darbą sudaro 1012 žodžiai, tikrai rasi tai, ko ieškai!

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Lygis
Universitetinis
Failo tipas
Word failas (.doc)
Apimtis
9 psl., (1012 ž.)
Darbo duomenys
  • Programų laboratorinis darbas
  • 9 psl., (1012 ž.)
  • Word failas 95 KB
  • Lygis: Universitetinis
www.nemoku.lt Atsisiųsti šį laboratorinį darbą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt