Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

PROG2 Haladó "C"

No description
by

My Logiscool

on 13 March 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of PROG2 Haladó "C"

alapjai és élmélet
Programozás
Mi a programozás?
Több probléma megoldásának megvalósítása egy
programozási nyelven.
Algoritmusok
Algoritmus (eljárás):
egy probléma megoldására szolgáló módszer.
Nagyszerű példa algoritmusra például a GPS-es navigáció:
Haladjon egyenesen 35 km-t.
Aztán forduljon balra.
Majd haladjon egyenesen 500 m-t.
Végül forduljon jobbra.
Példa algoritmusra
A feladatleírás eszközei
1. Folyamatábra
Határ szimbólumok:
Az algoritmus elején és végén használjuk
Beolvasó és kiíró utasítás
Változtók kezelése:
Egy összehasonlítás vagy értékadás
BAL
oldalán mindig a
változó
szerepel, aminek értéket adunk, a
JOBB
oldalra a
beírandó érték
kerül.
Pl.:
X=1 X=X+1
X=2 X=X-1
X=Y
X=Y-2
Az előbbi példában már látszott:

BE: x  a billentyűzetről olvasunk be egy

KI: x  x értéket kiírjuk a képernyőre értéket
Értékadó utasítás,
Műveletvégrehajtás

Feldolgozás
Szelekció
Egyszerűen megfogalmazva, felteszünk egy kérdést, a

választól függően pedig másként cselekszünk.
Logikai kapcsolók
< Kisebb > Nagyobb
<= Kisebb vagy egyenlő >= Nagyobb vagy egyenlő

= Egyenlő
<> Nem egyenlő
Ezek kerülhetnek két érték közé:
Folyamat vonalak
Az ábra szimbólumai közti kapcsolatot teremti meg. Jelzia végrehajtás sorrendjét is.
FELADAT!
Saját algoritmus rajzolása Folyamtábrával!
2. Stuktogram
3. Pszeudokód
Eljárás
BE: x
Ha x=0 akkor KI: x nulla
Ha x>0 akkor KI: x pozitív
Különben KI: x negatív
Eljárás vége
FELADAT!
Írjunk algoritmust, amely egy téglalap adatai alapján megadja a téglalap kerületét, illetve területét!
Eljárás
BE: a, b
KI: 2*(a+b)
KI: a*b
Eljárás vége
Feladat megoldása
Logikai kapcsolók
Alapvetően három logikai kapcsoló van:

- ÉS (&): mindkét feltétel igaz

- VAGY (|): a feltételek közül az egyik igaz

- NEGÁLT (!): a feltétel hamisságát vizsgáljuk

Logikai kapcsolók
- ÉS
Végrehajtódik-e a „...” helyén lévő utasítás?
A=1 B=3 C=5

Ha
(B>A) & (C>A)
akkor ... B>A, 3>1, IGAZ
C>A, 5>1, IGAZ

Ha
(B>A) & (B>C)
akkor ... B>A, 3>1, IGAZ
B>C, 3>5, HAMIS
Logikai kapcsolók
- VAGY
Végrehajtódik-e a „...” helyén lévő utasítás?
A=1 B=3 C=5

Ha
(B>A | C>A)
akkor ... B>A, 3>1, IGAZ
C>A, 5>1, IGAZ

Ha
(B>A | B>C)
akkor ... B>A, 3>1, IGAZ
B>C, 3>5, HAMIS
Logikai kapcsolók – ÉS/VAGY

Az alábbi táblázat összefoglalja a két kapcsoló működését:
Logikai kapcsolók
- NEGÁLÁS
A=1 B=3 C=5

Ha
!(A>B)
akkor ... A>B, 1>3, HAMIS

Ha
!(B>A)
akkor ... B>A, 3>1, IGAZ
Ciklusok
Elöltesztelő ciklus
Pszeudo-kóddal:

Ismételd, amíg a feltétel igaz
Utasítások
Ciklus vége
Hátultesztelő ciklus
Pszeudo-kóddal:

Ismételd
Utasítások
Amíg a feltétel igaz
Számlálós ciklus
Pszeudo-kód:

Kezdőérték megadása;
Ismételd, amíg A<B (vagy más);
Utasítások;
A=A+1;
Ciklus vége;
A: kezdőérték
B: feltételes érték
C: lépték
D: utasítások
FELADAT!
1, Kérjünk be számokat, írjuk ki őket, amíg a beírt szám nem nulla. Nullánál a program kilép.
2, Írassuk ki az első 100 szám összegét, nullától kezdve!
Adattípusok
Egyszerű
Összetett
Logikai
Numerikus
Karakter
Egész
Valós
Szöveg
Lista
Tömb
boolean: "igaz"
"hamis"
integer: 1, 12, 80
double: 3.14, 9.86
char: "a", "A", "_"
string: "kutya", "alma"
A programozási nyelv
A
programozási nyelv
a
számítástechnikában
használt olyan, az ember által olvasható és értelmezhető utasítások sorozata, amivel közvetlenül, vagy közvetve (például:
gépi kódra
fordítás után)
közölhetjük
a számítógéppel egy adott
feladat
elvégzésének módját.
(forrás: Wikipedia)
C#
A C# nyelvet a C++-raés a Java-raépülve a Microsoft fejlesztette ki.
Szükséges C# -osprogramok futtatásához a .NET keretrendszer (elvileg nem Windows-onlyalkalmazások)
A C# objektum orientált nyelv. Bővebben majd később beszélünk erről.
A nyelv felépítése
/*
* Komment helye
*/
using
System;
namespace
proba
{
class

Program
{
public static void
Main(
string
[] args)
{
Utasitas();
.
.
}
}
}
Minden utasítás végén pontosvessző van!
Figyeljük meg a kapcsos zárójelek helyét!
Minden utasításunk (egyelőre) a Main függvénybe íródjon!
Változó létrehozása
string
szoveg;
int
szam;
double
szam2;
char
karakter;
bool
logikai;
Változó fajtája
Változó neve
Több változó létrehozható egy sorban, vesszővel elválasztva:

int
szam1, szam2, szam3;
A változónév kisbetű-nagybetű függő!
Nem kezdődhet számmal, nem tartalmazhat szóközt, és különleges karaktereket (*#!@%)!
(Aláhúzást _ tartalmazhat!)
Létrehozásnál adhatunk kezdőértéket a változónknak:
int
szam = 1;
Módosítás
szam = 1;
szam = szam + 1;
szam = x + y;
szam = 2 * 10;
Változó név =
Amire változtatni szeretnénk
Kiírás
Console
.Write();
Console
.WriteLine();
A WriteLine hatására a „kurzor” a következő sor elejére ugrik, míg a Write után csak egy karakterhellyel jobbra lép.
Beolvasás
Console
.Read()
Console
.ReadLine()
Entert
ütve értéket ad vissza, tehát általában az alábbi módon használjuk:
int
szam =
Console
.Read();
string
szoveg =
Console
.ReadLine();
Bevitelnél
mi mindig ReadLine-t fogunk alkalmazni. A ReadLine
string
típusú adatként kezeli a bevitt értékeket, ezért ha ebből számot akarunk csinálni,
konverziót
kell használnunk.
Konverzió
Tehát ha egy egyszerű egész számot akarunk beolvasni:

int
be;
be =
Convert
.ToInt32(
Console
.ReadLine());
Mi történik, ha double típusú értéket szeretnénk beolvasni?
string
be =
Console
.ReadLine();
double
szam =
Convert
.ToDouble(be);
double
szam =
Convert
.ToDouble(
Console
.ReadLine());
Console
.Write(
"EGY ÉLMÉNY VOLT!"
);
Feltétel
Vagy más néven Szelekció
Ha az állítás igaz, végrehajtja az utasításokat.
Ha állítás nem igaz, továbblép a következő sorra.
if (állítás)
{
utasítások;
}
int
szam=0;
if (szam>0)
{
Console
.WriteLine(
"A szám pozitív!"
);
}

Ekkor a képernyő üres marad.
int
szam=1;
if (szam>0)
{
Console
.WriteLine(
"A szám pozitív!"
);
}

Ekkor megjelenik a felirat.
else
{
utasítások;
}
Else, azaz „különben”. szam=0 esetén az else ági utasítás hajtódik végre, szam=1 esetén a másik.
int
szam=1;
if (szam>0)
{
Console
.WriteLine(
"A szám pozitív!"
);
}
else
{
Console
.WriteLine(
"A szám nem pozitív!"
);
}
Számláló ciklus
for (int i=1; i<10; i++)
{
Utasitas();
}
i++ jelentése: i=i+1, tehát a lépték 1.
Addit ismétli az utasítást míg a számláló egyenlő nem lesz a beállított értékkel.
Eljárás
osszeg=0;
For (i=1; i<100; i=i+1)
osszeg=osszeg+i;
Ciklus vége
KI: osszeg;
Eljárás vége;
Tömbök
Egy adatszerkezet, ugyanolyan adattípusú elemek egymás után n-szer. Ez az n-darabszámú tömb.
Pl.: 10 elemszámú egész számokat tartalmazó tömb:
int
[] tomb =
new int
[10];

Egy 10 elemű, egész számokból álló tömb jön létre.
Az egyes elemekre az alábbi módon hivatkozhatunk:

tomb[0]
tomb[1]
tomb[i]
I. feladat
Töltsük fel a T, 100 elemű
tömböt az első száz számmal!
Eljárás
For (i=0; i<100; i=i+1)
T[i]=i;
Ciklus vége;
Eljárás vége;
II. feladat
Az előző példa feladatát végezzük el, ám ezúttal nem szeretnénk ha nullával kezdődne a számsor!
Eljárás
For (i=0; i<100; i=i+1)
T[i]=i+1;
Ciklus vége;
Eljárás vége;
III. feladat
Mi történne ha az eljáráson az alábbi módosítást végeznénk el?
Eljárás
For (
i=1; i<101;
i=i+1)
T[i]=i;
Ciklus vége;
Eljárás vége;
HIBA!
Véletlen szám generálás
Random
r =
new
Random();
Változó fajta
Változó neve
Ez egy meghívható fügvény lesz
r.Next(1,10);
Hogyan hívjuk meg a fügvényt?
Kurzor pozíció

Console.SetCursorPosition
(x, y);
karakter hely
sor
Ilyenkor csak oda kerül a kurzor nem fog semmi kiírni. Ahhoz hogy kiírjunk valamit kell egy Console.Write().
Console.SetCursorPosition
(10, 10);
Console.Write
("*");
A konzol 10. sorának 10. karakter helyén megjelenik egy csillag.
Elöltesztelő ciklus
Általában ezt fogjuk használni.
while
(állítás)
{
Utasítások();
}
Amíg állítás igaz, az utasítások végrehajtódnak.
A gép először az állítást ellenőrzi. Ha az hamis, akkor a ciklus el sem kezdődik.
while(Convert.ToInt32(Console.ReadLine())> 0)
{
Console.WriteLine("A beírt szám pozitív. Nem pozitív számra a program kilép!");
}
I. feladat
Kérjük be számokat amíg a beírt szám pozitív, negatívra a program kilép.
Lista
List
<
int
> lista =
new

List
<
int
>();
lita.Add();
lista[i];
for (int i = 0; i < lista.Count; i++)
{
Console.Write(lista[i]);
}
Full transcript