Leidsid 33 sarnast õppematerjali, mis on seotud failiga "Programmeerimine keeles C 1. kodutöö". Need materjalid aitavad sul teemat sügavamalt mõista.
length, printf, return, include, else, stdio, string, murumaa, tavalisel, charAlgoritmide 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
TARTU ÜLIKOOLI TEADUSKOOL PROGRAMMEERIMISE ALGKURSUS 2005-2006 Sisukord KURSUSE TUTVUSTUS: Programmeerimise algkursus.........................................6 Kellele see algkursus on mõeldud?..................................................................6 Mida sellel kursusel ei õpetata?.......................................................................6 Mida selle kursusel õpetatakse?......................................................................6 Kuidas õppida?.................................................................................................7 Mis on kompilaator?.............................................................................................8 Milliseid kompilaatoreid kasutada ja kust neid saab?......................................8 Millist keelt valida?...........................................................................................8 ESIMENE TEEMA: sissejuhatav sõnavõtt ehk 'milleks on v
Programmeerimise algkursus 1 - 89 Mida selle kursusel õpetatakse?...................................................................................................3 SISSEJUHATAV SÕNAVÕTT EHK 'MILLEKS ON VAJA PROGRAMMEERIMIST?'......3 PROGRAMMEERIMISE KOHT MUUDE MAAILMA ASJADE SEAS.............................3 PROGRAMMEERIMISKEELTE ÜLDINE JAOTUS ..........................................................7 ESIMESE TEEMA KOKKUVÕTE........................................................................................8 ÜLESANDED......................................................................................................................... 8 PÕHIMÕISTED. OMISTAMISLAUSE. ...................................................................................9 ................................................................................................................................................. 9 SISSEJUHATUS.......
Tagastusväärtus: a public class Euclid { public static void main (String[] param) { int m=15; int n=6; if (param.length > 1) { m=Integer.parseInt (param [0]); n=Integer.parseInt (param [1]); } System.out.println ("SYT (" + m + ", " + n + ") = " + syt (m, n)); } // main public static int syt (int a, int b) { while (b != 0) { int j22k = a % b; a = b; b = j22k; } return a; } // syt } // Euclid Massiiv Kui muutujaid on vähe, siis pole ka probleemi neile nimede leidmisega. Näiteks ruutvõrrandi lahendamise programmis leidsime kaks lahendit ja võisime neid nimetada x1 ja x2. Kui peaksime aga arvutama 1000 väärtust mingi rutiinse reegli järgi, siis oleks väga ebamugav kirjeldada 1000 eraldi muutujat. Ka tavaelus oleks raske linnas orienteeruda, kui majad poleks tänavate kaupa nummerdatud, vaid igal
1 Loeng. Sissejuhatus Võtmesõnad: abstract assert boolean break byte case catch char class const* continue default double do else enum extends final finally float for goto* if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while NB! Tunduvad võtmesõnadena, aga on literaalid: false null true Algtüübid: Täisarvud · byte(8-bitiline), short(16-bitiline ), int(32-bitiline), long(64-bitiline) Ujukomaarvud · float(32-bitiline), double(64-bitiline) Tõeväärtused · boolean(true, false) Sümbolid · char(16-bitiline Unicode-sümbol, 'u0000'(0) kuni 'uffff'(65535)) Nimi: · on tõstutundlik
omistamise operaatoreid, mille eesmärk on ennekõike lühendada koodi kirjutamist. ? 1 //omistamise operaatorid 2 $x = 8; 3 $y = 2; echo $x *= $y; 4 Sama asja saab kasutada ka tekstiosade liitmiseks. ? 1 $nimi = 'Mari'; 2 $pnimi = 'Kisakõri'; 3 $nimi .= $pnimi; echo $nimi; 4 Arvude ja teksti vormindamine Siiani oleme lauseid väljastanud funktsiooni echo abil. Leidub ka teisi võimalusi, millest igaühel on oma ülesanne. Üks nendest on printf, mis lisaks väljastamisele vormindab selle. Selleks tuleb lausesse märkida protsendimärgi (%) abil koht kuhu väärtust soovid ning seejärel väärtus. Järgmises näites on kohahoidjaks %s, mis vormindab väärtuse tekstina. ? 1 //muutuja väärtuste vormindamine 2 $nimi = 'Mari'; 3 printf('Tere %s', $nimi); Soovid lausese teisigi väärtusi? Pole probleem, lisa julgelt kohahoidjaid ning lisa soovitud väärtused. ? 1 //muutuja väärtuste vormindamine 2 $nimi = 'Mari';
Nende sees võivad olla plokid tingimuste ja
korduste tarbeks.
Lihtne tervitus
Näited
C C++ C#
#include
küpsiseid jääb üle. from math import ceil #ceil funktsioon ümardab komaga arvu ülesse. #Tordi andmed laius = int(input("Sisetage tordi mõõtmed.nMis on tordi laius?")) pikkus = int(input("Mis on tordi pikkus?")) korgus = int(input("Mitu kihti on tordis?")) pakisToodeteArv = int(input("Mitu küpsist on pakis?")) #Arvutab tordis küpsiste arvu def arvutaTordiSuurus(laius, pikkus, korgus): return laius * pikkus * korgus #Lokaalsed muutujad. #Funktsioon arvutab vajaliku pakkide arvu def arvutaPakkideArv(tordiSuurus, pakisToodeteArv): return ceil(tordiSuurus / pakisToodeteArv) pakkideArv = arvutaPakkideArv(arvutaTordiSuurus(laius, pikkus, korgus), pakisToodeteArv) print(pakkideArv) 4. Nimede korrastamine Modifitseeri veelkord kasutaja tervitamise programmi, kus kasutaja sisestab eraldi ees- ja perenime ning programm tervitab teda täisnimega.
tavalised graafikakomponendid suhteliselt sarnased veebis nähtavatega. Vaid mõnevõrra vabamalt pääseb oma komponente juurde tegema ning mitmekülgsemaid võimalusi kasutama. Tekstiakna rakenduste juures piirdub suhtlus arvutiga loetava ja trükitava tekstiga. Lihtsaim dialoogi pidav programm näeb välja järgmine: using System; class Sisend{ public static void Main(string[] arg){ Console.WriteLine("Palun eesnimi:"); string eesnimi=Console.ReadLine(); Console.WriteLine("Tere, "+eesnimi); } } Ning töö paistab välja nii: C:Projectsomanaited>Sisend Palun eesnimi: Juku Tere, Juku Esmane "Palun eesnimi" trükitakse välja sarnaselt nagu lihtsaimaski tervitavas programmis. Edasine Console.ReadLine() jääb kasutajalt sisestust ootama. Kõik, mis kasutaja kuni reavahetuseni kirjutab, püütakse kokku üheks tekstiks ning selle saab arvutisse meelde jätta.
tavalised graafikakomponendid suhteliselt sarnased veebis nähtavatega. Vaid mõnevõrra vabamalt pääseb oma komponente juurde tegema ning mitmekülgsemaid võimalusi kasutama. Tekstiakna rakenduste juures piirdub suhtlus arvutiga loetava ja trükitava tekstiga. Lihtsaim dialoogi pidav programm näeb välja järgmine: using System; class Sisend{ public static void Main(string[] arg){ Console.WriteLine("Palun eesnimi:"); string eesnimi=Console.ReadLine(); Console.WriteLine("Tere, "+eesnimi); } } Ning töö pastab välja nii: C:Projectsomanaited>Sisend Palun eesnimi: Juku Tere, Juku Esmane "Palun eesnimi" trükitakse välja sarnaselt nagu lihtsaimaski tervitavas programmis. Edasine Console.ReadLine() jääb kasutajalt sisestust ootama. Kõik, mis kasutaja kuni reavahetuseni kirjutab, püütakse kokku üheks tekstiks ning selle saab arvutisse meelde jätta.
2.4 GHZ AMD-l osutus piisavalt suureks juhuslike
arvude massiiv pikkusega 1 miljon elementi.
Programmi tööaja leidmine
Uurime kui kaua kulub aega algoritmi täitmiseks (C++ kood):
#include
tähte tähestikust tagapool oleva tähega. Kui krüpteerimisel või dekrüpteerimisel valitud täht osutub tähestikust väljapoole, tuleb hakata teiselt poolt tähestikku edasi lugema. Programmi kood: public class EX03 { /** * Given text and a rotation, encrypts text. * @param plainText plain text, readable by humanoids * with relative ease. * @param rotation * @return encrypted text */ public static String encrypt(String plainText, int rotation) { if (plainText == null) return null; if (plainText.isEmpty()) return plainText; String encrypted = ""; //plainText = minimizeText(plainText); plainText = plainText.toLowerCase(); if (rotation % 26 == 0) return plainText; if (rotation < 0) return null; int len = plainText.length(); for (int x = 0; x < len; x++) {
graafikakomponendid suhteliselt sarnased veebis nähtavatega. Vaid mõnevõrra vabamalt pääseb oma komponente juurde tegema ning mitmekülgsemaid võimalusi kasutama. Tekstiakna rakenduste juures piirdub suhtlus arvutiga loetava ja trükitava tekstiga. Lihtsaim dialoogi pidav programm näeb välja järgmine: using System; class Sisend{ public static void Main(string[] arg){ Console.WriteLine("Palun eesnimi:"); string eesnimi=Console.ReadLine(); Console.WriteLine("Tere, "+eesnimi); } } Ning töö paistab välja nii: C:Projectsomanaited>Sisend Palun eesnimi: Juku Tere, Juku Esmane "Palun eesnimi" trükitakse välja sarnaselt nagu lihtsaimaski tervitavas programmis. Edasine Console.ReadLine() jääb kasutajalt sisestust ootama. Kõik, mis kasutaja kuni reavahetuseni kirjutab, püütakse kokku üheks tekstiks ning selle saab arvutisse meelde jätta.
Ta lihtsalt ignoreerib seda. PHP programmeerimiskeeles on 2 tüüpi kommentaare: 1. / voi # - üherealiste märkuste jaoks 2. /* ... */ - mitmerealised kommentaarid comments.php return $x + $y; } ?> Näide 1.3.2 Eraldajad PHP programmid on põhimõtteliselt käskude kogumid. Käskude eraldamiseks kasutatakse programmeerimiskeeltes spetsiaalseid sümboleid - eraldajaid. PHP's seda tehakse semikooloniga: separators.php
393 Gapped Lambda K H 0.267 0.0410 0.140 Matrix: BLOSUM62 Gap Penalties: Existence: 11, Extension: 1 Number of Sequences: 2250671 Number of Hits to DB: 127332226 Number of extensions: 4937094 Number of successful extensions: 13884 Number of sequences better than 10: 117 Number of HSP's better than 10 without gapping: 0 Number of HSP's gapped: 13724 Number of HSP's successfully gapped: 117 Length of query: 699 Length of database: 811773583 Length adjustment: 134 Effective length of query: 565 Effective length of database: 811773583 Effective search space: 458652074395 Effective search space used: 288253772985 T: 11 A: 40 X1: 16 (7.4 bits) X2: 38 (14.6 bits) X3: 64 (24.7 bits) S1: 41 (20.4 bits) S2: 79 (35.0 bits) b. Uurida leitud oletatavaid konserveerunud domeene, millistes vahemikes asetsevad? Mis piirkond on märgitud umbes 500 aminohappe juures? Millised on tõenäoliselt uuritavad valgud ja miks? VASTUS:
On olemas kaks põhivarianti keeles X programmi täitmiseks. Kompileerimine: masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näide: C. Interpreteerimine: masinkoodis programm nimega interpretaator loeb sisse X keeles faili ja asub seda ridarealt täitma.Näide:vana BASIC Just-in-time compilaator(TSI) Java Keelte erisused: kolm põhiasja Süntaks (kuidas kirjutatakse näiteks if .. then .. else ühes või teises keeles) Semantika ehk tähendus (mida õigesti kirjutatud rogramm tegelikult siis teeb) Teegid (libraries) (millised valmis programmijupid on selle keele jaoks kergesti kättesaadavad või kohe kaasa pandud) Keeled: näited lisavõimalustest eri keeltes Kiired bitioperatsioonid, otsepöördumine mälu kallale: C Keerulisemad andmetüübid: listid, hash tabelid jne: Lisp, Scheme,Python Erikonstruktsioonid stringitöötluseks: Perl, PHP Objektid: C++, Java, C#, Python, Lisp
Tüüp nimi = algväärtus; Peame meelde jätma, et: a) teksti kirjutame alati jutumärkidesse! b) Numbri kirjutame jutumärkidesse vaid siis, kui tahame, et see oleks tekstilise tähendusega. Üldjuhul on see ilma jutumärkideta. c) Jah-ei väärtuse korral kirjutame algväärtuseks kas true(jah, tõde) või false(ei, vale), muid variante pole. d) kommentaari ette paneme alati kaks kaldkriipsu, seda lauset programm ei loe. DEKLARATSIOON: String tekst = "Tere hommikust!"; - tüüpi String deklareerime ALATI suure S tähega, kuid see on ainuke muutuja tüüp, mis suure tähega algab. Nimi võib olla enda vabalt valitud ja see võib sisaldada ka numbrit. int number1= 10; - Me ei pane numbrit jutumärkidesse, kui me tahame seda kasutada numbrilises mõttes (näiteks erinevad tehted). Algväärtuseks paneme 10. Boolean b = true; - jah-ei tüüp, algväärtus true ehk jah. Vaatame näidet. Demonstreerin muutujate väljastamist konsoolile. Numbritega saab teha tehteid
valiku A_I (auto increment), mis hakkab automaatselt arvu ühe võrra suurendama. Teised andmed vaata pildilt. Kui valmis, vajuta nuppu Salvesta! Andmevälja tüübid Nagu eelmisest tegevusest võisite aru saada, on meil kindlasti vaja määrata andmevälja tüüp. See tähenda, et kui oled lahtrisse lubanud ainult numbrid, siis sinna teksti salvestada ei saa jne. Andmevälja tüübid jagunevad kolmeks grupiks: tekst arvud kuupäev ja aeg Tekstitüübid CHAR - kindla pikkusega, näiteks isikukood; kuni 255 märki (1bait märgi kohta) VARCHAR - muutuva pikkusega, näiteks nimed; kuni 65535 märki TEXT - pikkade tekstide jaoks, näiteks uudised, artiklid jne; kuni 65535 märki BINARY - lubab lisada kõiki andmetüüpe ja andmeid ei tõlgita (nt tekstiks või numbriks), kuni 255 märki VARBINARY - kuni 65535 märki BLOB - binaarse info hoidmiseks, näiteks pildid; 65535 baiti / 64kB
EXCEL – Funktsioonid 1 - 11 Sisukord 1 Matemaatilised ja trigonomeetrilised funktsioonid.....................................................................................................2 2 Kuupäeva ja kellaaja funktsioonid...............................................................................................................................2 3 Statistilised funktsioonid..............................................................................................................................................3 4 Tekstifunktsioonid.........................................................................................................................................................3 5 Loogilised funktsioonid................................................................
hilisem loomise kuupäevast. d_arhiveerimise kuupäev Jah aeg d_tarnimise tekst 300 Aadress peab olema Jah aadress tähtedest ja numbritest koosnev string. Aadress ei saa olla ainult numbritest koosnev string ja ei saa olla ka tühistring. 40 d_nimetus tekst 50 Kirjeldus ei saa olla Jah tühistring ega tühikutest koosnev string
psychotic PARRY (at Stanford) discusses its problems with the Doctor (at BBN) Two important programming concepts introduced: The first object-oriented language Smalltalk developed at XEROX PARC, bsaed on ideas by Alana Kay. The first logic programming language Prolog developed by Alan Colmerauer at University of Marseilles Hewlett-Packard introduces a programmable calculator with a magnetic stripe memory for storing programs. Users could write programs up to 100 lines in length and record them on blank cards, or they could buy pre-programmed cards. In 1975 it is used on Soyuz-Apollo mission for calculating critical course-correction maneuvers. 1973 Intel files a patent application for a "memory system for a multichip digital computer". The first prototype Alto workstation computer is turned on at Xerox' Palo Alto Research Center. Its first screen display is a bitmapped image of the Sesame Street character Cookie Monster.
h> ette nähtud piir-aega, kuid tulemuse väärtus võib DEM eri programmide andmed/programm eri int main (void) { aja jooksul Süsteem on protsesside kogum, mis reageerib kohtades printf ("Hello, world!n"); väheneda sündmustele andmete kaitsmine return 0; Kindel (firm deadline): sarnane rangele, kuid ei Iga sündmusega on seotud ajatempel, mis näitab · MMU Memory Management Unit } järgne
Andmed ja valemid Excel'is id Excel'is Andmete tüübid Excelis Valemid ja avaldised Funktsioonid Arvandmed, -avaldised ja -funktsioonid Aadressite ja nimede kasutamine valemites. Harjutus "Kolmnurk" Harjutus "Täisnurkne kolmnurk " Arvavaldised - tehete prioriteedid, funktsioonid Loogikaandmed, -avaldised ja funktsioonid Võrdlused ja loogikatehted Võrdlused ja loogikatehted. Harjutused IF-funktsioon Palk & Kauba hind Funktsioonide tabel Minirakendus "Detail" - ülesande püstitus "Detail" - kasutajaliides "Detail" - materjalid "Detail" - värvid Ajaandmed, -avaldised ja -funktsioonid Tekstandmed, -avaldised ja funktsioonid Lisad Nimede määramine ja kasutamine Valideerimine Matemaatikafunktsioonid Tekstifunktsioonid Loogikafunktsioonid Ajafunktsioonid Otsimine. Funktsioon VLOOKUP Valemiredaktor MS Equation 3.0 s "Kolmnurk"
Sissejuhatus infotehnoloogiasse 1. Loeng Algoritm on täpne samm-sammuline, kuid mitte tingimata formaalne juhend millegi tegemiseks. Näited: a. Toiduretsept. b. Juhend ruutvõrrandi lahendamiseks Algoritmiline probleem - probleem, mille lahenduse saab kirja panna täidetavate juhendite loeteluna. Programm on formaalses, üheselt mõistetavas keeles kirja pandud algoritm. Arvutid suudavad täita ainult programme. Analoogsüsteem andmeid salvestatakse (peegeldatakse) proportsionaalselt Näit: termomeeter, vinüülplaat, foto Digitaalsüsteem (pidevad) andmed lõhutakse üksikuteks tükkideks, mis salvestatakse eraldi Näit: CD, arvutiprogramm, kiri tähtede ja bittidena Ühelt teisele: digitaliseerimine The three major comparisons of computers are: Electronic computers versus Mechanical computers Gen
Bricklin ja Frankston!! sum = sum + i; sõltumata fraasidest, millega neid muutujaid 1646-1716 - Leibniz. Leibnizi arvuti(1671)liitis, return sum; } asendada:1. eeldus: iga x on y.2. eeldus: mõni z on lahutas, korrutas, jagas. 1980 – esimene hdd mikroarvutitele(Seagate), 5.sumto,modula2 x.järeldus: mõni z on y. Aristotelese
M L K J F B G H Väljume kaare joonestamise alamkäsust L ↵ Töö 3 Klamber 13 ja joonestame tavalisel moel (INT abil) liitjoone sirglõigud EP, PN ja NC: P E N C A Q D M L K J F B
................................................................................................... 12 Meetod parse..............................................................................................................12 Loetava kuupäeva loomine........................................................................................13 Kellaaeg.................................................................................................................... 13 Objekt string...................................................................................................................14 String meetodid..........................................................................................................14 Näited.........................................................................................................................15 Brauseri objekt..................................................................................................
LEN(tekst) Leiab teksti pikkuse (märkide arvu tekstis) MID(tekst;m;n) Eraldab tekstist n märki alates märgist numbriga m RIGHT(tekst;[ n ]) Eraldab tekstist n parempoolset märki, vaikimisi 1 TRIM(tekst) Eemaldab tekstist tühikud, jättes sõnade vahele ühe tühiku Tekstid salvestatakse ASCII koodis, kus igale märgile vastab kindel arv (8-bittine kood) Tabelis on funktsiooni CHAR abil toodud igale koodile (0...255) vastav kood Kood Märk Kood Märk Kood Märk Kood Märk Kood Märk 0 51 3 101 e 151 201 1 52 4 102 f 152 202 2 53 5 103 g 153 203 3 54 6 104 h 154 204 4 55 7 105 i 155 205
LEN(tekst) Leiab teksti pikkuse (märkide arvu tekstis) MID(tekst;m;n) Eraldab tekstist n märki alates märgist numbriga m RIGHT(tekst;[ n ]) Eraldab tekstist n parempoolset märki, vaikimisi 1 TRIM(tekst) Eemaldab tekstist tühikud, jättes sõnade vahele ühe tühiku Tekstid salvestatakse ASCII koodis, kus igale märgile vastab kindel arv (8-bittine kood) Tabelis on funktsiooni CHAR abil toodud igale koodile (0...255) vastav kood Kood Märk Kood Märk Kood Märk Kood Märk Kood Märk 0 51 3 101 e 151 201 1 52 4 102 f 152 202 2 53 5 103 g 153 203 3 54 6 104 h 154 204
LEN(tekst) Leiab teksti pikkuse (märkide arvu tekstis) MID(tekst;m;n) Eraldab tekstist n märki alates märgist numbriga m RIGHT(tekst;[ n ]) Eraldab tekstist n parempoolset märki, vaikimisi 1 TRIM(tekst) Eemaldab tekstist tühikud, jättes sõnade vahele ühe tühiku Tekstid salvestatakse ASCII koodis, kus igale märgile vastab kindel arv (8-bittine kood) Tabelis on funktsiooni CHAR abil toodud igale koodile (0...255) vastav kood Kood Märk Kood Märk Kood Märk Kood Märk Kood Märk 0 51 3 101 e 151 201 1 52 4 102 f 152 202 2 53 5 103 g 153 203 3 54 6 104 h 154 204
The word “Unit” is also capitalized when it refers to an OMRON product, regardless of whether or not it appears in the proper name of the product. The abbreviation “Ch,” which appears in some displays and on some OMRON products, often means “word” and is abbreviated “Wd” in documentation in this sense. The abbreviation “PC” means Programmable Controller and is not used as an abbreviation for any- thing else. Visual Aids The following headings appear in the left column of the manual to help you locate different types of information. Note Indicates information of particular interest for efficient and convenient operation of the product. 1, 2, 3... 1. Indicates lists of one sort or another, such as procedures, checklists, etc. OMRON, 1997 All rights reserved
LEN(tekst) Leiab teksti pikkuse (märkide arvu tekstis) MID(tekst;m;n) Eraldab tekstist n märki alates märgist numbriga m RIGHT(tekst;[ n ]) Eraldab tekstist n parempoolset märki, vaikimisi 1 TRIM(tekst) Eemaldab tekstist tühikud, jättes sõnade vahele ühe tühiku Tekstid salvestatakse ASCII koodis, kus igale märgile vastab kindel arv (8-bittine kood) Tabelis on funktsiooni CHAR abil toodud igale koodile (0...255) vastav kood Kood Märk Kood Märk Kood Märk Kood Märk Kood Märk 0 51 3 101 e 151 201 1 52 4 102 f 152 202 2 53 5 103 g 153 203 3 54 6 104 h 154 204
Tarkvara testimist käsitlev juhendmaterjal Tarkvara testimine Testimise parimad praktikad Nõudmiste määratlemine Maili Markvardt ASA Quality Services OÜ Tallinn 2006 Sisukord 1 Lugejaskond ja käsitlusala.......................................................................................3 2 Kasutatavad mõisted.................................................................................................3 3 Sissejuhatus testimisse..............................................................................................4 4 Testimise koht arendusprotsessis.............................................................................5 5 Testimise liigid...........................................................................................................5 5.1 Liigitus tarkvara testitavate omaduste järgi..........................................................5 5.2 Liigitus s