Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
|
|
- Lubomír Beran
- před 9 lety
- Počet zobrazení:
Transkript
1 v Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
2 v v v Práce se soubory
3 v (7. kapitola v Introduction to the New Mainframe) návrh aplikace vývoj a testování postupné nasazování, často v souběhu s původním systémem
4 v Assembler umožňuje kontrolu nad kódem na úrovni bitů/bytů vhodný pro psaní subrutin volaných z jiných jazyků je napsaný v assembleru
5 v COBOL - Common Bussines-Oriented Language PL/I Java CLIST obdoba shellových skriptů prakticky se ale napoužívá, nahrazuje ho Rexx Rexx - Restructured Extended Executor LANGUAGE ENVIRONMENT systemové API použitelné ve všech jazycích
6 v velké programy se dělí na menší logické celky - moduly v C++ většinou jednu třídu implementujeme v jednom souboru z jednoho souboru můžeme volat funkce nebo metody implementované někde jinde jejichž kód není známý
7 v Pro urychlení vytváření se proces překladu dělí na několik kroků: Preprocessing/prekompilace Kompilace programu
8 Preprocesing/prekompilace v jde o zpracování maker preprocesoru #include, #define se subsytémy CICS (transkace), DB2(databáze) se nepoužívají funkce ale makra EXEC SQL... to je stejné i v Unixu nebo ve Windows
9 Kompilace v zdrojový kód zpracovaný preprocesorem se předá překladači ten vytváří strojový kód tzv. object modul - ten ještě nelze spouštět překladač nezná kód ani adresu funkcí implementovaných v jiných modulech místo toho si poznamená pouze jméno volané funkce - symbolický odkaz nahrazení symbolických odkazů je práce pro linker (binder)
10 v linkování provádí tzv. LINKER, mainframe používá i tzv. BINDER binder je "modernější" - umožňuje např. uložit výstup do PDSE linker potom bere všechny objektové moduly a nahrazuje symbolické odkazy skoky na skutečné adresy nebo vloží patřičný binární kód to, co dělá linker se někdy může provádět za chodu programu, kdy objektový modul linkuje dynamicky - DLL
11 Spoušt ení v dříve obstarával tzv. BATCH LOADER dnes je nahrazen BINDERem načítá dané moduly do VIRTUAL STORAGE a spouští je
12 v ukládájí se do PDS, tím dostáváme knihovnu zdrojové texty - SOURCE (MODUL) LIBRARY objektové moduly - OBJECT (MODUL) LIBRARY spustitelné programy - LOAD (MODUL) LIBRARY
13 v v Je několik způsobů, jak překládat a linkovat programy v v závislosti na adresování 16. bitové, 31. bitové a 64. bitové s využítím IPA = Interprocedural Analysis překladač běžně provádí jen optimalizace na úrovni jednotlivých procedur pomocí parametru IPA(NOLINK) provede překladač první fázi překladu, kdy do výsledného přídá dodatečné informace druhá fáze se volá s parametrem IPA(LINK), kdy dojde k samotnému provedení optimalizací s využitím XPLINK = Extra Performance Linking jde o optimalizaci pro rychlé volání funkcí
14 v //OBETO80J JOB ( ), OBETO80,CLASS=A,REGION=48M, // MSGLEVEL=(1,1),MSGCLASS=H,NOTIFY=&SYSUID // JCLLIB ORDER=(CEE.SCEEPROC,CBC.SCBCPRC) //COMPILE EXEC PGM=CCNDRVR, // PARM= /SEARCH( CEE.SCEEH.+ ) NOOPT SO OBJ LIST //STEPLIB DD DSNAME=CEE.SCEERUN,DISP=SHR // DD DSNAME=CEE.SCEERUN2,DISP=SHR // DD DSNAME=CBC.SCCNCMP,DISP=SHR //SYSLIN DD DSNAME=OBETO80.INTRO.OBJ(HELLO),DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD DSNAME=OBETO80.INTRO.C(HELLO),DISP=SHR
15 v pro se jmenuje CCNDRVR Parametry se předávají pomocí PARM: // PARM= [run-time-options]/program-parameters zdvojené se používá pro vložení apostrofu do předávaného řetězce SEARCH( CEE.SCEEH.+ ) kde jsou uloženy hlavičkové soubory - obdoba -I u gcc LSEARCH se používá pro uživatelské hlavičkové soubory (ne systemové) NOOPT - NOOPTMIZE/OPTIMIZE žádné optimalizace, jiná možnost je OPT(2) nebo OPT(3) - použije se IPA SO - SOURCE/NOSOURCE vypisuje zdrojový kód a některé diagnostické zprávy OBJ - OBJECT/NOOBJECT zda se má vytvářet object modul LIST - vypíše výsledný kód v assembleru
16 v DEBUG - překlad s informacemi pro ladění ARCH - architektura 0 - spustitelné všude 5 - na z/900 CHECKOUT - varování před možnými chybami v COMPACT - zmenšuje výsledný kód DEFINE - definice pro preprocesor DLL - generování DLL GOFF - Generalized Object File Format INLINE - vkládané funkce IPA - Interprocedural Analysis
17 v LP64/ILP bitový nebo 31. bitový překlad OPTFILE - udává data set s volbami pro optimalizace PPONLY - spustit pouze preprocesor RTTI - run-time type information - umožňuje použít dynamic_cast SQL - pro zpracování SQL maker UNROLL - rozbalování smyček XPLINK - Extraperformance linking
18 v Použité DDNAMES: SYSIN - zdrojový kód SYSLIB - systemové hlavičkové soubory SYSOUT - chybová hlášení STEPLIB - run-time knihovny
19 v V JCL pro překlad je nutné pojit následující knihovny: CEE.SCEERUN - PDS knihovna obsahující run-time rutiny pro, COBOL, PL/I, FORTRAN CEE.SCEERUN2 - PDSE knihovna obsahující run-time rutiny pro a COBOL CBC.SCCNCMP -
20 v K linkováni se používá tzv. BINDER. Existují tři způsoby, jak linkovat program: 1 jedno jediné linkování 2 linkování jednotlivých objektových modulů 3 přelinkovat změněný object modul Program pro linkování se jmenuje IEWL.
21 - jedno jediné linkování v
22 - linkování jednotlivých objektových modulů v
23 - přelinkovat změněný object modul v
24 v V lze použít příkazy: CALL program-data-set-member-name [ parameters ] CALL obeto80.intro.load(hello)
25 v Jazyk C jazyk C++ Význam EDCC CBCC překlad 31-bitových a 64-bitových EDCCB CBCCB překlad a linkování 31-bitových EDCQCB CBCQCB překlad a linkování 64-bitových EDCCBG CBCCBG překlad, linkování a spuštění 31-bitového programu EDCQCBG CBCQCBG překlad, linkování a spuštění 64-bitového programu Další y viz.: User s Guide - str. 297, 298, Language Environment Programming Guide - str. 105
26 Program pro vypsání argumentů příkazové řádky v INTRO.C(ARGS) #include <stdio.h> int main( int argc, char* argv[] ) { int i; for( i = 0; i < argc; i ++ ) printf( "Argument %d -> %s\n", i, argv[ i ] ) return 0; }
27 v Program pro vypsání argumentů příkazové řádky JCL kód pro překlad a linkování - využívá katalogovanou u EDCCB: INTRO.JCL(ARGS) //OBETO80J JOB ( ), OBETO80,CLASS=A, // REGION=48M,MSGLEVEL=(1,1),MSGCLASS=H, // NOTIFY=&SYSUID //MYLIB JCLLIB ORDER=( CEE.SCEEPROC, CBC.SCBCPRC ) //COMPPRC EXEC PROC=EDCCB, // CPARM= SO LIST, // INFILE= OBETO80.INTRO.C(ARGS), // OUTFILE= OBETO80.INTRO.LOAD(ARGS),DISP=SHR
28 v JCL pro spuštění: INTRO.JCL(ARGSJOB) Program pro vypsání argumentů příkazové řádky //OBETO80J JOB ( ), OBETO80,CLASS=A, // REGION=4096K,MSGLEVEL=(1,1),MSGCLASS=H, // NOTIFY=&SYSUID //JOBLIB DD DSN=OBETO80.INTRO.LOAD,DISP=SHR //MYARGS EXEC PGM=ARGS, // PARM= /ARG1 ARG2 ARG3 ARG4 //SYSOUT DD SYSOUT=* /*
29 v Virtuální metody svou funkcí často nahrazují příkaz switch příkaz switch lze překládání lépe optimalizovat volání virtuálních metod je náročnější
30 v Virtuální metody svou funkcí často nahrazují příkaz switch příkaz switch lze překládání lépe optimalizovat volání virtuálních metod je náročnější Výjimky tvoří velkou překážku pro optimalizaci je nutné generovat mnoho navíc pro možnost sledování šíření výjimek výrazně zpomalují kód, pokud k výjimce dojde - viz. M. Virius, Pasti a propasti jazyka C++, Výjimky by měly zůstat výjimečné zpomalují ale i v případě, kdy výjimka nevznikne
31 v RTTI - dynamic_cast<> Runtime Type Information - umožňuje změnu typu za chodu programu z toho plyne, že až za chodu programu se určuje, jaký kód se bude provádět, to znemožnuje optimalizaci u, kde hodně záleží na výkonu je lepší RTTI odstranit často se lze RTTI vyhnout pomocí lepšího (jednoduššího) návrhu aplikace STL - standard template library je dobré dobře znát, co se děje uvnitř a jakou třídu použít na který problém - seznamy, vektory apod.
32 v New/delete - dynamické alokace paměti dynamické alokace je VELMI nákladná je lepší nešetřit příliš pamětí, alokovat si všechny struktury dopředu a neuvolňovat je, když je budu brzy opět potřebovat dynamická alokace může vést k fragmentaci paměti a velkému užírání paměti viz. článek na root.cz - Jak funguje malloc a free někdy je možné alokaci na haldě nahradit alokací na zásobníku pomocí alloca html_node/variable-size-automatic.html#variable-size-automatic
33 v ANSI aliasing rules používat konstanty - const proměnná se pak nemůže měnit a není nutné ji před použitím vždy znovu načítat v paměti - stačí ji mít stále uloženou v registru přístupu k datům přes ukazatel je lépe použít dočasnou proměnnou používat lokální proměnné místo globálních každé volání funkce může změnit hodnotu globální proměnné, u lokálních se to stát nemůže častém přístupu k globálním proměnným je lépe udělat lokální kopii IPA toto umí řešit sama je efektivnější předávat data jako argument, než pomocí globálních proměnných pro proměnné v rámci modulu je dobré pužít označení static zaručuje, že se nebudou měnit volání funkcí mimo modul omezit používání ukazatelů
34 v Zápis matematických výrazů Při zápisu: a = b * ( x * y * z ); c = x * y * z * d; je rozpoznán stejný výraz x * y * z, ale pří zápisu a = b * x * y * z; c = x * y * z * d; již tomu tak není. doporučuje se, stejné výrazy psát vlevo nebo do závorek obzvlášt vhodné pro neměnný výraz uvnitř smyčky
35 v Převod float na int je náročný: float a[ 10 ]; for( i = 0; i < 10; i ++ ) a[ i ] = a[ i ] * i; je lepší ve tvaru float x = 1.0; for( i = 0; i < 10; i ++ ) { a[ i ] = a[ i ] * x; x = x + 1.0; }
36 v je lepší používat násobení než dělení zápis x * ( 1.0 / 3.0 ) je rychlejší než x / 3.0 nebot v prvním případě se dělení provede v době překladu pro aritmetické operace je výhodnějí použít int, než char nebo unsigned int
37 v funkce memcpy nebo memcmp bývají efektivnější než cykly memcmp může být výhodnější pro porovnávání struktur, než je běžné porovnávání memxxx jsou rychlejší než strxxx
38 v Typy souborů v : Práce se soubory OS files - klasické soubory HFS files - Hierarchical file system - unixové soubory v USS - Unix System Services VSAM data sets - Virtual Storage Acces Method - databázové soubory Terminal files - práce s terminálem Memory files - dočasné soubory Hiperspace memory files - dočasné soubory uložené v paměti - do 2 GB CICS Data Queus LE Message File - soubor pro stderr/cerr
39 v Práce se soubory Tři typy souborů podle zacházení s daty: text streams stejné jako v Unixu jde o text s několika speciálními řídícími znaky \n, \r, \t tyto znaky se ukládají do souboru - u record I/O tomu tak není binary streams posloupnost bytů, žádné nemají speciální význam record I/O - logické záznamy - věty - F, FB, V, VB obecně jde o bloky určité velikosti lze s nimi použít pouze funkce fread(), fwrite() nelze použít fprintf(), fscanf(), getc(), putc() pokud chceme do věty zapsat více dat, než je její velikost, data se oříznou změně obsahu věty se nemění velikost (např. u V, VB), pouze se přepíše příslušná část velikost věty nelze měnit, jakmile je jednou vytvořena
40 v Lze použít stejně jako v Unixu/Windows: #include <stdio.h> Příkaz fopen int main( int argc, char* argv[] ) { FILE* f1; int i; printf( "Vytvarim soubor intro.cfile" ); f1 = fopen( "intro.cfile", "w" ); if( f1 == NULL ) { printf( "Nemuzu otevrit soubor intro.cfile" ); return 16; } for( i = 0; i < 100; i ++ ) fprintf( f1, "radek %d\n", i); printf("stiskni klavesu..."); getchar(); close( f1 ); return 0; }
41 Příkaz fopen v Funkci fopen lze udat i atributy data setu - DCB = DATA CONTROL BLOCK atributy RECFM - formát dat LRECL - logical record - věta - základní struktura dat pro danou aplikaci BLKSIZE - physical blocks množství dat, které budou načteny z disku do bufferu jedné operaci čtení
42 v DCB tyto atributy se zjišt ují: Příkaz fopen 1 z parametrů volání funkce fopen(), freopen() 2 atributů pro dané ddname (z JCL) 3 z atributů existujícího souboru ( otevírání) - pomocí recfm=* 4 defaultní hodnoty pro fopen() a freopen() pro binární soubory je to VB pro spool soubory FB jinak pro textové soubory je to F a LRECL = BLKSIZE = 254 V - pokud je udáno LRECL a BLKSIZE VB jinak
43 Příkaz fopen v Možné formáty RECFM: F - fixed, V - variable, B - blocked, U - undefined A - ASA znaky - pro formátování tisku na tiskárně M - machine control characters S - standard format každý blok musí být zaplněn větami, než se vytvoří nový
44 v #include <stdio.h> Příkaz fopen int main( int argc, char* argv[] ) { FILE* f1; int i; printf( "Vytvarim soubor intro.cfileps\n" ); f1 = fopen( "intro.cfileps", "w,recfm=fb,lrecl=20,blksize=312 if( f1 == NULL ) { printf( "Nemuzu otevrit soubor intro.cfileps" ); return 16; } for( i = 0; i < 100; i ++ ) fprintf( f1, "radek %d \n", i); printf("stiskni klavesu..."); getchar(); close( f1 ); return 0; }
45 Fixed format record v F, FB, FBS, FS, FM, FBA, FBM, FBS, FSA, FSM, FBSA, FBSM S - spanned files = jedna věta může být rozdělena do více bloků binární data nezaplněné věty se doplňují nulami data postupně přetékají z jedné věty do druhé nezaplněné bloky se nedoplňují
46 v Fixed format record text non-asa zápis do nového záznamu se provede pomocí znaku \n nebo uzavřením a otevřením souboru data, která se nevejdou do věty jsou odseknuta prázdná místa věty po \n se doplňují mezerami, znak \n se neukládá čtení se znak \n vloží na místo první mezery sekvence mezer na konci věty přepisování věty změní jen přepsané pozice, ne celou větu text ASA obsahuje speciální znaky ASA první pozice ve větě obsahuje speciální znak určující, co se má provést přechodu k nové větě new line, carriage return, form feed
47 Variable-format record v V, VB, VBS, VS, VM, VBA, VBM, VBS, VSA, VSM, VBSA, VBSM Obsahuje BDW a RDW. binární data data "přetékají" do dalších vět věta může mít maximálně LRECL-4 bytů textová data konec věty se určuje pomocí \n prázdná věta se uloží jako jedna mezera změně obsahu již nelze změnit délku zápisu více dat -> oseknutí zápisu méně dat -> doplnění mezerami text ASA - podobné jako u fixed
48 Undefined v vše se zpracovává jako data - i BDW, RDW a řídíci znaky LRECL nemá žádný význam, ale musí být menší než BLKSIZE věta odpovídá bloku binární data postupně zaplňují jednotlivé bloky text \n znamená hranici bloku
49 Udávání ddnames v Provádí se pomocí předpony DD: v názvu souboru: #include<stdio.h> char text[ 80 ], *result; FILE *fp; int main( void ) { fp = fopen( "DD:INFILE", "r" ); while( fscanf( fp,"%s", text )!= EOF ) printf( "%s\n", text ); fclose( fp ); return 0; }
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Ukládání dat 1 2 3 DATA SETS jde o obdobu souborů a adresářů v jiných OS nemá hierarchický systém souborů,
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Alokace data Typy data Umístění data Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Alokace data Typy data 1 Umístění data 2 Alokace data Typy data Umístění
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Soubory. Tomáš Oberhuber. Soubory. Soubory. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Práce se soubory práce se soubory probíhá pomocí maker nejprve poíšeme DCB zvoleného souboru pak lze použít makra
Programování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
MPASM a IDE pro vývoj aplikací MCU (Microchip)
MPASM a IDE pro vývoj aplikací MCU (Microchip) MPLAB, vývojové prostředí a jeho instalace; Založení nového projektu a jeho základní nastavení; Zásady tvorby a základní úprava formuláře zdrojového kódu;
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
ČÁST 1. Základy 32bitového programování ve Windows
Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
Koncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Práce se soubory. Základy programování 2 Tomáš Kühr
Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
- jak udělat konstantu long int: L long velka = 78L;
Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L
IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí
Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální
Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16
Jazyk C práce se soubory 1 Soubory Použití souborů pro vstup většího množství dat do programu (uživatel nezadává z klávesnice ručně tisíce údajů...) pro uložení většího množství výsledků, např. k pozdějšímu
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Úvod do Struktura příkazy setu v Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Úvod do Struktura příkazy setu v 1 Úvod do 2 Struktura 3 příkazy 4 5 setu
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Úvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Práce se systémem 1 2 3 Data S lze pracovat pomocí: USS = Unix System Services TSO/E = Time Sharing Option/Extensions
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Vstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;
Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 5. Preprocesor, *extra) kompilace
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Output Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague JES Output 1 2 3 4 Output 5 6 7 JES Output JES = JOB ENTRY SUBSYSTEM subsystém pro zpracování úloh cílem
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr
Preprocesor a koncepce (větších) programů Úvod do programování 2 Tomáš Kühr Práce s preprocesorem Preprocesor Zpracovává zdrojový kód ještě před překladačem Provádí pouze záměny textů (např. identifikátor
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Základy programování (IZP)
Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
Práce s binárními soubory. Základy programování 2 Tomáš Kühr
Práce s binárními soubory Základy programování 2 Tomáš Kühr Binární soubory Mohou mít libovolnou strukturu Data jsou uložena ve stejné podobě jako v paměti za běhu programu Výhody: Pro uložení je potřeba
Úvod do programování. Lekce 3
Úvod do programování Lekce 3 Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include #include // budeme pouzivat funkci
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Správa paměti v zos 1 2 3 4 5 6 7 Data se ukládají do: REAL STORAGE = "rychlá" pamět např. RAM AUXILIARY
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme
Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské
Práce se soubory. Úvod do programování 2 Tomáš Kühr
Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Správa paměti v z/os 1 2 3 4 5 6 7 8 Data se ukládají do: REAL STORAGE = "rychlá" pamět např. RAM AUXILIARY
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
Programovací jazyk C++ Hodina 1
Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Overview 1 2 3 4 5 Co je to? silné a spolehlivé počítače používané hlavně velkými společnostmi nebo vládami
09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
Algoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016
ZPRO cvičení 8 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague December 7, 2016 Outline I 1 Outline 2 Dynamické alokování paměti 3 Dynamická alokace
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
Základy programování (IZP)
Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace
10 Práce s řetězci - pokračování
10 Práce s řetězci - pokračování Máme deklarováno: char retez[50]; - čtení z klávesnice: scanf("%s", retez); - čtení zadané počtu znaků z klávesnice scanf("%10s", retez); // přečti řetězec z klávesnice,max
IPA - Lab.1 Úvod do programování v ASM
IPA - Lab.1 Úvod do programování v ASM Ondřej Klubal http://www.fit.vutbr.cz/~iklubal/ipa/ 2014 Ondřej Klubal IPA - Lab.1 1 / 16 Osnova Nástroje Konvence volání Použití DLL Windows API Makra NASM + VS
Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N
Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze
Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44
Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251
Opakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;
Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 1. *extra) Základy { struct
Vstup a výstup datové proudy v C
Vstup a výstup datové proudy v C Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 24. října 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Vstup a výstup 24. října 2011 1 / 37 Přehled, rozdělení
Práce se soubory. Úvod do programování 2 Tomáš Kühr
Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup
Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu
1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu
ZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:
21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)
Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele
Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Pointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a
Aplikace Embedded systémů v Mechatronice Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakovaní Funkce v C Tvorba knihoven Konfigurační bity #pragma Makra v C #define Debugging v MPLAB Hardware
přetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního
Základy algoritmizace a programování
Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.
Jazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19
Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář
Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena
Martin Flusser. December 15, 2016
ZPRO cvičení 9 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague December 15, 2016 Outline I 1 Outline 2 Struktura 3 Struktury cv 4 Lineární spojový
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
Formátové specifikace formátovací řetězce
27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete
Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Java Cvičení 01 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Příklady - Porovnání Co kód vypíše? package cz.cuni.mff.java.example01.tests; public class Test01
Pole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
Vývoj rozhraní pro vzdálené ovládání systému mainframe. Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze
Vývoj rozhraní pro vzdálené ovládání systému mainframe Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze David Fabian 3.9.2008 1 Obsah Cíle projektu a práce Úvod do mainframe