Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

Programmeerimine 2. esimene kodutöö (0)

3 HALB
Punktid
Ülesande püstitus
Vastavalt oma matrikli viimasele numbrile valitakse ülesande variant. Koostada tuleb
C-keelne programm.
Tingimused:
1) failist F1 sisestatakse kirjed struktuuriga:
Nimi - string
Vanus – naturaalarvuline
Palk – reaalarvuline
2) faili F2 väljastatakse keskmisest madalama vanusega kirjed;
3) faili F3 väljastatakse keskmiset suurema palgaga kirjed.
Programmikood
# include
#include
#include
#include
int i=0; // Globaalne indeksmuutuja
int n; // Ridade ehk isikute arv failis
double keskm_vanus,keskm_palk,sum_palk=0,sum_vanus=0;
#define DEBUG 0 // Silumisinfo kuvamiseks peab muutuja olema 1
/** Isikuandmete struktuur ja muutujate kirjeldus **/
struct isik<;
struct isik *palgaandmed;
/** Failinimede muutujad **/
char f1[]="f1.txt";
char f2[]="f2.txt";
char f3[]="f3.txt";
FILE *fp1,*fp2,*fp3;
/* Funktsioon sisendfaili olemasolu kontrolliks ja kirjete arvu määramiseks failis **/
int sisendfaili_kontroll(void)
char rida[122]; // Maksimaalne tähemärkide arv ühel failireal on 120 märki
int n=0,p; // n - ridade arvu loendur , p - ühe failirea tähemärkide arv
fp1=fopen(f1,"r"); // Faili avamine lugemiseks
if (fp1==NULL) // Kontrollime, kas fail on olemas
printf("Sisendfaili %s avamine ebaõnnestus!\n",f1);
exit(1); // Programmi töö lõpetamine
else
while (!feof(fp1))
fgets(rida,122,fp1); // Failist andmete lugemine ridade kaupa
p=strlen(rida);
if (p>1) n++; // Kontrollime, et failirida ei koosneks üksnes reavahetusest
fclose(fp1);
return n; // Tagasta ridade arv sisendfailis
/** Funktsioon väljundfailide tekitamiseks ning tühjendamiseks **/
void tekita_failid(void)
fp2=fopen(f2,"w");
fclose(fp2);
fp3=fopen(f3,"w");
fclose(fp3);
return;
/** Funktsioon isikuandmete väljastamiseks failidesse **/
void andmed_failidesse(void)
fp2=fopen(f2,"a");
fp3=fopen(f3,"a");
for (i=0;ivanus)nimi,(palgaandmed+i)->vanus,(palgaandmed+i)->palk);
// Kui isiku vanus on väiksem keskmisest vanusest väljasta andmed faili
if (((palgaandmed+i)->palk)>keskm_palk) fprintf(fp3,"%s %d %.2lf\n",(palgaandmed+i)-
>nimi,(palgaandmed+i)->vanus,(palgaandmed+i)->palk);
// Kui isiku palk on suurem keskmisest palgast väljasta andmed faili
fclose(fp2);
fclose(fp3);
/** Peaprogrammi algus **/
int main(void)
int m;
n=sisendfaili_kontroll();
printf("Failist %s loeti %d isiku andmed.\n",f1,n);
fp1=fopen(f1,"r"); // Faili avamine lugemiseks
m=sizeof(struct isik); // Mälueralduseks vajalik arv baite ühe isiku kohta
palgaandmed=malloc(m*n); // Mälu eraldamine struktuurimassiivile
if (DEBUG) printf("Struktuurimassiivi madalaima baidi aadress %p, ühe kirje andmeteks
eraldati mälu %d baiti, mälu eraldati massiivile kokku %d baiti.\n",palgaandmed,m,m*n);
while (!feof(fp1)) // Failist andmete lugemine struktuurimassiivi
fscanf(fp1,"%s ",(palgaandmed+i)->nimi); // Nime lugemine
fscanf(fp1,"%d",&(palgaandmed+i)->vanus); // Vanuse lugemine
sum_vanus+=(palgaandmed+i)->vanus; // Vanuste summa leidmine
fscanf(fp1,"%lf\n",&(palgaandmed+i)->palk); // Palga lugemine
sum_palk+=(palgaandmed+i)->palk; // Palkade summa leidmine
i++;
keskm_vanus=sum_vanus/n;
printf("Isikute keskmine vanus %.2lf\n",keskm_vanus);
keskm_palk=sum_palk/n;
printf("Isikute keskmine palk %.2lf\n",keskm_palk);
fclose(fp1);
tekita_failid(); // Väljundfailide tekitamine ja tühjendamine
if (DEBUG) for (i=0;inimi);
printf("%d ",(palgaandmed+i)->vanus);
printf("%.2lf\n",(palgaandmed+i)->palk);
andmed_failidesse(); // Väljasta isikuandmed failidesse
Programmi seletus
Programm koosneb peaprogrammist int main ning kolmest alamprogrammist:
1) int sisendfaili_kontroll(void)
2) void tekita_failid(void)
3) void andmed_failidesse(void)
Töö alguses kontrollib programm esimese alamprogrammi abiga sisendfaili olemasolu
ning selle lugemisõigust. Vea korral väljastatakse teade ja väljutakse programmist.
Ühtlasi loetakse kirjete arv failis, mille alusel määratakse tellitava mälu hulk. Seejärel
toimub peaprogrammis sisendfailist andmete lugemine palgaandmete struktuuri
massiivi ning leitakse isikute keskmine vanus ja palk. Järgmiseks toiminguks kutsutakse
välja teine alamprogramm, mis tekitab ja tühjendab väljundfailid, et sinna hiljem
andmeid lisada. Viimasena kutsutakse välja kolmas alamprogramm, mis väljastab
isikuandmed failidesse vastavalt ülesande püstituses esitatud tingimustele.
Märkused:
1. Isiku nime pikkus ei tohi olla pikem kui 99 tähemärki.
2. Maksimaalne tähemärkide arv sisendfaili ühe real võib olla 120.
Programmi kompileerimiseks kasutati cc kompilaatorit vers . 4.6.1
Programmeerimine 2-esimene kodutöö #1 Programmeerimine 2-esimene kodutöö #2 Programmeerimine 2-esimene kodutöö #3
Punktid 50 punkti Autor soovib selle materjali allalaadimise eest saada 50 punkti.
Leheküljed ~ 3 lehte Lehekülgede arv dokumendis
Aeg2014-04-19 Kuupäev, millal dokument üles laeti
Allalaadimisi 69 laadimist Kokku alla laetud
Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
Autor Nephelem Õppematerjali autor

Sarnased õppematerjalid

Algoritmide ja andmestruktuuride praktikum
17
doc

Algoritmide ja andmestruktuuride praktikum

Algoritmide ja andmestruktuuride Praktikum Sügis 2009 Koostas: Elli Kopli Juhendas: Ain Isotamm Praktikum 2 (14.09.2009) Ülesanne 1 Koosta programm, mis küsib kasutjalt lause ja siis pöörab selle ümber. Programmi ajaline keeukus on O(n). Lahendus #include #include #include int main(){ char jutt[100]; char a,b; int i,n,m; printf("Palun sisesta oma tekst.n"); memset(jutt,'',100); //Täidab listi sümpolitega 0 gets(jutt); //küsib stringi if(strlen(jutt)==0){ //Kui string on tühi printf("Sisestatud string on tühi!n"); return(0); }else{ printf("jutt :",jutt); //keerab ringi n=strlen(jutt); //n on stringi pikkus m=n>>1; for(i=0; i

Algoritmid ja andmestruktuurid
Programeerimise algkursus 2005-2006
230
pdf

Programeerimise algkursus 2005-2006

.....8 ESIMENE TEEMA: sissejuhatav sõnavõtt ehk 'milleks on vaja programmeerimist?'..........................................................................................10 Programmeerimise koht muude maailma asjade seas...............................10 Masinad ja nende juhtimine...................................................................10 Masin arvutamise jaoks - arvuti .............................................................10 Kaudne juhtimine ehk programmeerimine ............................................11 Arvutite rakendusala laienemine ...........................................................11 Programmeerimine tänapäeval..............................................................12 Programmeerimiskeelte üldine jaotus .......................................................13 Imperatiivsed ehk käskivad keeled........................................................14 Funktsionaalsed keeled .................

Programmeerimine
Loogika ja programmeerimine
89
doc

Loogika ja programmeerimine

................................................................... 76 ÜLESANDED........................................................................................................................... 77 Sissejuhatus................................................................................................................................85 Struktuurprogrammeerimine......................................................................................................85 Objektorienteeritud programmeerimine.................................................................................... 86 Objekt, atribuut, meetod........................................................................................................ 86 Klass.......................................................................................................................................87 Kapseldumine.....................................................................................................................

Arvutiõpetus
PHP ALUSED RAAMAT
238
docx

PHP ALUSED RAAMAT

01 - PHP - Sissejuhatus Antud moodul on järgmine samm veebitehnoloogia õppimisel pärast HTML5 ja CSS3 õppimist. Siin õpime kuidas puuta koduleht PHP ja MySQL abil dünaamiliseks. Antud kursuse puhul olen aluseks võtnud vanema php kursuse, mis pärineb aastast 2009 ning oli toetatud e- ope.ee poolt. Et vanemast materjalist mingi jälg maha jääks, lisasin selle PDF dokumenti. Kui materjal on juba olemas, siis miks uuesti? Selle aja jooksul on tekkinud parem arusaam, kui hästi õpilased materjali omandavad ning milline võiks olla parem struktuur. Lisaks sellele tahan iga materjaliga anda kaasa kenasti esitluse ning luua videoõpetused. Kellele on kursus mõeldud? Kursuse loomisel olen eelkõige silmas pidanud oma õpilasi, kellele tuleb see kõik kenasti selgeks teha. Kuid loodan, et sellest on ka teistele kasu, kellega ma kokku otseselt ei puutu. Kursus on ülesehitatud selliselt, et üheskoos tehakse läbi harjutused ning ülesanded

Informaatika
C-materjal
85
doc

C# materjal

..........................................................................29 Omaloodud andmestruktuur..................................................................................................29 Punktimassiiv....................................................................................................................31 Ülesandeid.........................................................................................................................32 Objektorienteeritud programmeerimine....................................................................................33 Tutvustus...............................................................................................................................33 Klassimuutuja....................................................................................................................34 Osuti, omistamine............................................................................................................. 34

Programmeerimine - c sharp
Andmebaasipõhiste veebirakenduste arendamine Microsoft Visual Studio ja SQL Server’i baasil
184
docx

Andmebaasipõhiste veebirakenduste arendamine Microsoft Visual Studio ja SQL Server’i baasil

Omaette terviklikud toimingud paigutatakse üldjuhul alamprogrammidesse. Nende sees võivad olla plokid tingimuste ja korduste tarbeks. Klassi moodustab üheskoos toimivate või sarnaste alamprogrammide komplekt (näiteks matemaatikafunktsioonid) - sellest pikemalt aga hiljem objektinduse juures. Suuremate rakenduste juures jagatakse klassid veel omakorda nimeruumidesse. Nii on lootust ka pikemate rakenduste puhul midagi hiljem koodist üles leida. Mõned salapärased kohad on veel jäänud. Esimene rida using System; teatab, et nimeruumist System pärinevaid klasse saab kergesti kasutada - piisab vaid klassi nimetamisest. C# standardpaketis leidub tuhandeid kasutamisvalmis klasse. Lisaks veel loendamatu hulk lisapakette, mis muud programmeerijad on valmis kirjutanud. Kindlasti leidub nende hulgas korduvaid klassinimesid - sest mõttekaid ja kõigile arusaadavaid klassinimetusi lihtsalt ei saa olla nii palju. Kui aga samanimelised klassid on eri

Algoritmid ja andmestruktuurid
Nimetu
575
docx

Nimetu

funktsionaalsete programmide ehitamiseks. CLR rakenduste kompileerimine käib kahes faasis: 1. Esimese sammuna programmeerija kompileerib oma lähtekoodi vahekeelde. Microsofti raamistiku puhul on selleks MSIL (Microsoft Intermediate Language). 2. Teise sammuga käivitamise hetkel CLRi kooseisus olev kompilaator kompileerib MSILi masinkoodi, mida protsessor hakkab täitma. Kompileeritakse vaid need osad programmist, mida kasutatakse e. kompileerimine on kiire, kuigi esimene käivitamine võib olla aeglasem kui kohe binaarsel kujul oleval programmil. Viimasel hetkel kompileerimise eelis seisneb selles, et protsessorile käivitamiseks mõeldud binaarset koodi on võimalik optimeerida täpselt selle protsessori jaoks, mis hakkab programmi jooksutama. Ei ole vahet, kas protsessor on 32 või 64 bitine jne. Tulles nüüd tagasi Microsofti .NET platvorm juurde siis see pole mitte üksnes CLR, vaid toodete

Informaatika
Veebistuudium arendus ASP NET
212
docx

Veebistuudium arendus ASP.NET

reeglitele vastav tekstifail, mida veebilehitsejas näidatakse. Mitmesugused tehnoloogiad on lihtsalt leidnud võimalusi, kuidas võimalikult mugavalt lehtedel olevad andmeid määrata vastavalt kasutaja soovidele. Lihtsaim HTMLi reeglitele vastav veebileht näeb aga välja järgmine: Minu<b> esimene </b>leht Tere maailm Selle võib salvestada omale sobiva tekstiredaktoriga (nt. Notepad või ka vastinstalleeritud Visual Web Developer). Panna failile laiendiks .html (siis teab veebilehitseja, et vastavat teksti tuleb kujundada HTML-i reeglitele vastavalt), jätta meelde kuhu fail salvestati. Edasi juba lehitsejas avada nagu tavalist kohaliku masina faili (failimenüüst ava). Tulemuseks

Veebiprogrammeerimine




Kommentaarid (0)

Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun