155IN3G Informatika 3: Porovnání verzí

Z GeoWikiCZ
m (výjimky)
Řádek 151: Řádek 151:
Pokusy o podvod budou nahlášeny disciplinární komisi fakulty s návrhem na ukončení studia.
Pokusy o podvod budou nahlášeny disciplinární komisi fakulty s návrhem na ukončení studia.


<!-- == Informatika 3 &rarr; náhrada 153IN2F ==
=== Zimní semestr 2006/2007 ===


=== Změna rozvrhu pro zápis do zimního semestru 2.roč.G  ===
* protože má předmět zapsáno 224 studentů, nastavil jsem kapacitu terminů na 21, což je počet počítačů v B870. Obvykle jsem nechával 1-2 mista rezervu pro případ výpadku hardwaru. Letos tedy "jedeme na doraz", doufejme, že technika neselže.


* Přednáška  153IN2F  se z út 3+4 vh přesouvá na pá 9+10 vh B286 (učí Čepek)
* první termíny zatím nejsou otevřeny (mají kapacitu 0), kapacita bude nastavena na plný počet dodatečně.
* Přednáška  152TCVI  se z út 5+6 vh přesouvá na út 3+4 vh C208 (učí Mervart).


Změna rozvrhu pro zápis do zimního semestru 3.roč.G:
* jak bude postupovat zkouškové období, budu postupně odebírat atribut "opravný" termín, tak aby se příůadně mohli hlásit i studenti, kteří ještě na zkoušce nebyli. Záměr je umožnit studentům, kteří neuspěli přihlásit se na některý z opravných termínu (je jich řádově třetin, jak určují fakultní předpisy)
 
* Ruší se předmět  153INF3 a nahrazuje se předmětem  153IN2F.
* Přednáška  153IN2F se koná v pá 9+10 vh. B286 (učí Čepek)
 
;Cvičení: v po 9+10 vh B870<br/>
:v pá 11+12 vh B870<br/>
:v pá 13+14 vh B870
 
studenti si mohou cvičení zapsat také do skupin předmětu 153IN2F pro 2.roč.G.
 
''prof. Ing. Aleš Čepek, CSc.'' <br/>
''zástupce  proděkana pro pedagogickou činnost''
 
 
On Fri, Jun 23, 2006 at 08:21:21AM +0200, Hanka Nedvědová wrote:
> Pisi jeste jednou kvuli informatice ....
> Neni mne totiz zcela jasne, zda-li informatika IN2F vypsana
> nahradou za INF3 je jina nez jiz absolvovana INF2 ze 
> 3.semestru, kterou mame zakoncenou zkouskou. Take nevim, 
> jestli ti, kteri si jiz zminenou INF2
> ze 3.semestru budou zapisovat znova, budou chodit na dve
>  totozna cviceni........ci se jim dva predmety "svrknou"  
> do  jednoho....??
>
> S pranim krasneho dne,
> Hanka Nedvedova
> G-2-63
To: Hanka Nedvědová <Hana.Nedvedova@............>
Cc:
Bcc:
Subject: Re: IN2F
Reply-To:
In-Reply-To: <359.1030-26672-929067470-1151043681@.........>
Dobrý den,
situace, kterou popisujete je opravdu přechodny jev pouze pro
příští akademický rok.
Já jsem předpokládal, že rozšířená druhá informatika 153IN2F
bude jako náhrada sloužit pouze pro studenty, kterým chybí
zrušená třetí informatika 153INF3.
V příštím semestru by ale studentům současného druhého ročníku
vypadly 4 kredity. Jsou tedy v zásadě dvě možnosti: a) otevřeme
pro ně opět INF3 a všechny problémy spojené se změnou rozvrhu
před sebou budeme valit dalších několik let, dokud na fakultě
bude jediný student, kterému bude chybě předmět 153INF3,
nebo b) zrušíme předmět 153INF3 okamžitě a pro příští rok pro
dnešní druhý ročník vypíšeme náhradu 153IN2F.
Mnohem víc by se mi líbilo, pokud by si studenti namísto
zrušeného předmětu mohli zapsat volitelné předměty, které by
jim nahradily scházející 4 kredity. Bohužel ale byly na naší
fakultě všechny volitelné předměty převedeny do kategorie X a
nejsou za ně žádné kredity.
V zásadě tedy budete opakovat již probranou látku, s tím,
že s rozšířenou přednáškou já budu ale zkoušet od letoška
i pointery a třídy (řekněm základy objektového programování,
naplno pak v magisterském programu, viz skripta). V jisté
smyslu a s nadsázkou se tedy jak píšete "dva předměty scvrknou
do jednoho". Každopádně inovovaná informatika 153IN2F je  
jednoznačně jiný předmět a bude se učit podle plánu
připraveného pro nově otevíraný obor [[geoinformatika]]. Cílem
této úpravy bylo též harmonizovat doporučené studijní plány
oborů [[Doporučený studijní plán oboru Geodézie a kartografie|G]] a [[Doporučený studijní plán oboru Geoinformatika|H]].
Na naší fakultě je účast na cvičeních povinná, mohu Vás ale
ubezpečit, že se získáním zápočtu já v příštím roce rozhodně
nebudu dělat nikomu potíže. Jediné co budete muset splnit bude
zkouška, kde budu zadávat pouze ty [[C plus plus Bc.|příklady]], které jsou uvedeny
na [[Hlavní strana|wiki]] (samozřejmě tam ještě nějaké přibybou ... v konečné fázi
by jich měla být asi tak stovka).
S pozdravem
Aleš  Čepek
-->


[[Category:Výuka]]
[[Category:Výuka]]
[[Category:Programování]]
[[Category:Programování]]

Verze z 12. 12. 2006, 12:03

Anotace

Úvodní kurz programovacího jazyka C++. Základní prvky jazyka, struktura programu, typy dat. Deklarace proměnných a objektů, konstanty, inicializace proměnných a objektů. Výrazy, příkazy, funkce, pointery. Třídy, zapouzdření, dědičnost, polymorfismus. Vybrané algoritmy, programování jednoduchých geodetických úloh. Semestrální práce.

Skripta, příklady, tutoriály

Skripta
Úvod do C++
Příklady
Příklady C++ pro bakaláře
Návody, tutoriály
Maticová C++ knihovna matvec
Tvorba programů v prostředí OS GNU/Linux
GNU Emacs
Dev-C++

Externí odkazy

Program make

  • GNU Emacs jako implicitní volbu pro překlad nabízí program make -k (parametr -k znamená pokračovat i po případných chybách)
  • Typickým způsobem jak přeložit a sestavit program je definovat všechny potřebné kroky a závislosti v souboru Makefile a přenechat ří­zení­ překladu a sestavení na programu make
  • Daný program/programy, resp. projekt, přitom umisťujeme do samostatného adresáře (např. přednášky a cvičení)

Následující jednoúčelový soubor Makefile umožňuje automatický překlad, sestavení a spuštění všech C++ souborů v daném adresáři (předpokládáme, že každý soubor obsahuje jeden kompletní program)

FILES=$(shell ls *.cpp | sed s/\\.cpp$$//g )
all : $(FILES)

% : %.cpp Makefile
      $(CXX) $(CXXFLAGS) -I.. -o $@ $<
      touch  data.txt
      ./$@ < data.txt

Cvičení

Plán cvičení

Základní pojmy

  1. program hello world
  2. vybrané základní datové typy (int, double, bool, void)
  3. základní aritmetické operace +, -, *, / a %
  4. operátor přiřazení a operatury +=, -=, *= ...
  5. standardní vstup a výstup pro základní číselné typy
  6. blok {}, platnost a viditelnost objektů (proměnných)
  7. odvozené typy ukazatel a reference (první zmínka)

Programování cyklů

  1. první seznámení s kontejnerem vector
  2. relační operátory <, >, <=, >=, !=
  3. příkazy for, while, do, continue a break
  4. příklady programování jednoduchých cyklů

Funkce, první seznámení

  1. napište a otestuje jednoduché funkce jako (více viz sbírka příkladů C++ Bc.).

Knihovna matvec

  1. maticová knihovna matvec
  2. součet dvou vektorů, součet dvou matic
  3. součin matice a vektoru
  4. součin dvou matic

Gaussova eliminace rozšířené soustavy

Řesení soustavy lineárních rovnic Gaussovou eliminací

  1. vstup rozšířená matice soutavy (absolutní členy tvoří N+1 sloupec; na cvičení se omezíme na případ s jedinou pravou stranou)
  2. převod na horní trojuhelníkovou soutavou (pomocí elementárních úprav: výměna dvou řádků, přenásobení řádku nenulovývm koeficientem, přičtení k-násobku jiného řádku)
  3. řešení horní trojúhelníkové soustavy (zpětná substituce)

Zpracování vstupní dávky souřadnic

Napište program, který načte a zpracuje soubor souřadnic v následujícím formátu (viz zadádí C++ Bc. 19):

  • soubor může obsahovat komentáře (#)
  • může obsahovat prázdné řádky
  • na řádku se uvádí číslo bodu a souřadnice xy, z nebo xyz
# jednoduchy seznam souradnic
# ---------------------------

1001 234.53 345.22          # x y
1002 355.24 456.46 555.12   # x y z
1003 423.12                 # z

# ------ konec dat ------

Vstupní/výstupní proudy

Napište funkci std::istream& komentář(std::istream& inp) podle zadání C++ Bc. 18.

Funkce komentář() vrací referenci na vstupní proud a může být proto použita např. v podmínce while(...) pro čtení vstupních dat.

Poznámka: funkce komentář() je po formální stránce manipulátor bez parametrů (více viz skripta).

Ukazatele a dynamická alokace paměti

  • Ukazatel na funkci
    • napište funkci, která metodou půlení hledá řešení soustavy , kde je spojitá funkce, která na zadaném inrevalu nabývá hodnot s různými znaménky (viz též metoda tětiv z příkladu 29).
  • Napište funkce, které realizují jednoduché funkce s maticemi:
    • alokování paměti pro matici
    • načtení matice ze souboru
    • výpis matice
    • uvolněné alokované paměti

Ukazatel na funkci (2)

Napište funkci pro numerický výpočet určitého integrálu Simpsonovou metodou (příklad 30).

Použijte deklaraci typedef pro typ ukazatel na funkci typu double s jedním argumentem typu double.

typedef double (*Funkce)(double);

double simpson(Funkce f, double a, double b, int m);   // deklarace funkce

Poznámka: deklaraci typedef můžeme použít pro zjednodušení práce s libovolným typem, nevytváří nový typ ale pouze náhradní jméno.

Výjimky

  • try blok
  • vyvolání výjimky
  • zpracování výjimek

Zkouška

Zkouška má dvě části. První společná část začíná v počítačové učebně (B870), každý student dostane dvě vylosovaná zadání ze sbírky příkladů pro bakaláře. Nutnou podmínkou pro hodnocení dobře je vyřešení alespoň jednoho ze dvou zadaných příkladů. První část zkoušky trvá 135 minut, následuje hodnocení všech řešení, po kterém je oznámeno, kteří studenti neuspěli, kteří mají nárok na známku dobře a kteří mají šanci získat lepší známku.

Ve druhé části zkoušky jsou individuálně zkoušeni studenti, kteří byli v první části vyhodnoceni jako potenciální kandidáti na známky velmi dobře a výborně. Zarařezení do této kategorie ale neznamená, že jejich hodnocení nemůže nakonec být dobře nebo dokonce nedostatečně.

Každý student si může donést jeden list formátu A4 s poznámkami (nesmí ale obsahovat kód ze sbírky příkladů) a může používat jeden čistý list A4 na poznámky. Nutno předložit ke schválení před zahájením zkoušky.

Při zkoušce nesmí studetni používat žádné další pomůcky, jedinou výjimkou je text skript v elektronické podobě (skripta jsou uložena v kořenovém adresáři /) a veškeré informace z online dokumentace operačního systému.

Studenti jmenovitě nesmí používat externí media, ani kalkulačky, mobily, organizátory a pod. Veškeré tašky a osobní věci musí být uloženy v prostoru u tabule (B870).

Při zkoušce mohou studenti komunikovat pouze s vyučujícími. Komunikace s jinými studenty nebo s kýmkoliv mimo učebnu (jakoukoliv formou) je považována za pokus o podvod.

Pokusy o podvod budou nahlášeny disciplinární komisi fakulty s návrhem na ukončení studia.

Zimní semestr 2006/2007

  • protože má předmět zapsáno 224 studentů, nastavil jsem kapacitu terminů na 21, což je počet počítačů v B870. Obvykle jsem nechával 1-2 mista rezervu pro případ výpadku hardwaru. Letos tedy "jedeme na doraz", doufejme, že technika neselže.
  • první termíny zatím nejsou otevřeny (mají kapacitu 0), kapacita bude nastavena na plný počet dodatečně.
  • jak bude postupovat zkouškové období, budu postupně odebírat atribut "opravný" termín, tak aby se příůadně mohli hlásit i studenti, kteří ještě na zkoušce nebyli. Záměr je umožnit studentům, kteří neuspěli přihlásit se na některý z opravných termínu (je jich řádově třetin, jak určují fakultní předpisy)