C# programozás kezdőknek › 1. lecke

C# tanfolyam · 1. lecke

Az első C# programom

Megírjuk és lefuttatjuk az első programodat. Először működésre bírjuk a kódot, utána megnézzük, mit jelentenek a részei. Még nincs szükséged változókra vagy ciklusokra: egyetlen kiíró utasítással kezdünk.

  • kb. 40 perc
  • kezdő szint
  • Visual Studio
Anime stílusú diáklány laptopon C# programozást tanul

A lecke végére

  • megírod és lefuttatod az első C# konzolprogramodat;
  • érted a Console.WriteLine() részeit;
  • megkülönbözteted a Write() és a WriteLine() működését;
  • tudsz üres sort és megjegyzést írni;
  • felismered és kijavítod a leggyakoribb kezdő hibákat.

Mielőtt elkezded

Visual Studióval dolgozunk. Ha még nincs működő konzolprojekted, előbb végezd el az előkészítő leckét: Visual Studio telepítése C# programozáshoz →

Írd meg az első programodat

Nyisd meg a projektedben a Program.cs fájlt, és írd be ezt a sort. Ha a fájlban van Main(), akkor a kapcsos zárójelei { } közé írd. A két fájlszerkezetről a 4. lépésben lesz szó.

Program.csC#
Console.WriteLine("Szia, ez az első C# programom!");

Te jössz!

Gépeld be a fenti sort saját kezűleg, ne másold be! Gépelés közben az ujjad és a szemed is megtanulja a C# írásmódját. Ha kész, mentsd a fájlt (Ctrl + S).

Jósolj, aztán futtasd!

Mit gondolsz?

Mielőtt elindítod: pontosan mit fog kiírni a program? Az idézőjelek is megjelennek majd?

Most futtasd: kattints a felső eszköztáron a zöld indítógombra, vagy nyomd meg a Ctrl + F5 billentyűket, ami hibakeresés nélkül indítja a programot.

KimenetKonzol
Szia, ez az első C# programom!

Működik!

Elkészítetted és lefuttattad az első valódi C# programodat. Bejött a tipped? Az idézőjelek nem jelennek meg: csak azt jelzik a gépnek, hol kezdődik és hol ér véget a szöveg.

Kérdőjelek az ékezetek helyén?

Egyes Windows-konzolok az „ő” és „ű” betűket hibásan jelenítik meg. Ilyenkor írd ezt a sort a program legelejére:

Console.OutputEncoding = System.Text.Encoding.UTF8;

Ha hibaüzenetet kapsz, ugorj a Hibavadászat részhez!

Mit jelent ez az egy sor?

Most, hogy már láttad működni, bontsuk részekre az utasítást.

Az első utasításC#
Console.WriteLine("Szia, ez az első C# programom!");
ConsoleA .NET osztálykönyvtár egyik osztálya: a konzolablakkal kapcsolatos műveleteket tartalmazza.
.A pont kapcsolja össze az osztályt és a műveletét: a Console osztály WriteLine műveletét kérjük.
WriteLineKiírja a megadott szöveget, majd a következő kiírást új sorban kezdi.
( "…" )A zárójelben adjuk át, mit írjon ki. A szöveg mindig idézőjelek közé kerül.
;A pontosvessző zárja le az utasítást, mint a pont a mondat végén.
AaA C# megkülönbözteti a kis- és nagybetűt: a console és a Console nem ugyanaz!

Próbáld ki!

Változtasd meg csak az idézőjelek közötti szöveget, és futtasd újra. Mi maradt változatlan a kódban?

Hol van ez a Program.cs fájlban?

A Program.cs a program forráskódját tartalmazó fájl. Kétféle szerkezettel találkozhatsz benne.

Rövid, modern forma

Program.csC#
Console.WriteLine("Hello, World!");

Az újabb .NET-projektek úgynevezett felső szintű utasításokat használnak, ezért a kezdő program egyetlen sor is lehet.

Hagyományos Main forma

Program.csC#
using System;

class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}

Ha Main() van a fájlban, az utasításainkat egyelőre a kapcsos zárójelei közé írjuk.

Jó, ha tudod

Hogy melyik formát kapod, azt a Visual Studio projektlétrehozó ablakában a Do not use top-level statements jelölőnégyzet dönti el. Ha be van jelölve, a hagyományos Main formát kapod. A Console App (.NET Framework) projekttípus mindig a Main formát hozza létre, üres Main()-nel, ahogy a lenti képen is látod. Kezdőként mindkettőben ugyanazokat az utasításokat tanulod.

Az első C# projekt Program.cs fájlja megnyitva a Visual Studióban
A Program.cs fájl a Visual Studio felületén.

Write vagy WriteLine?

Mit gondolsz?

Nézd meg a két kódot! Mielőtt kinyitod a kimenetet, tippeld meg: egy sorba vagy két sorba kerül a szöveg?

WriteLine()

KódC#
Console.WriteLine("Első sor");
Console.WriteLine("Második sor");
Mutasd a kimenetet
Első sor
Második sor

Write()

KódC#
Console.Write("Szia, ");
Console.Write("világ!");
Mutasd a kimenetet
Szia, világ!

A WriteLine() kiírás után új sort kezd, a Write() ugyanabban a sorban folytatja.

Próbáld ki!

Írj két rövid mondatrészt először két Write(), majd két WriteLine() utasítással. Hasonlítsd össze a kimenetet!

Üres sor a kimenetben

Ha a WriteLine() utasításnak nem adunk szöveget, egyszerűen új sort kezd. Ezzel tagolhatod a kimenetet.

KódC#
Console.WriteLine("Első rész");
Console.WriteLine();
Console.WriteLine("Második rész");
KimenetKonzol
Első rész

Második rész

Plusz: megjegyzések a kódban

A megjegyzést a program nem hajtja végre. Arra való, hogy magyarázatot vagy emlékeztetőt hagyj a kódban magadnak vagy másoknak.

Egysoros

// Ez egy megjegyzés.
Console.WriteLine("Ez végrehajtódik.");

Többsoros

/*
Ez a megjegyzés
több soron át tart.
*/

Mikor írj megjegyzést?

Akkor, ha valódi plusz információt ad, például hogy miért csinálsz valamit. Nem kell minden könnyen érthető sort külön elmagyarázni.

Hibavadászat

Minden programozó hibázik

A jó programozó nem az, aki sosem hibázik, hanem aki gyorsan megtalálja a hibát. A Visual Studio a hibás helyet piros hullámvonallal jelzi, a Hibalista ablakban pedig megmutatja a hibakódot. Keresd meg és javítsd ki a hibákat az alábbi kódokban!

1. hiba

Hibás kódC#
Console.WriteLine("Szia!")

CS1002: ; expected

Mi a hiba és a javítás?

Hiányzik a pontosvessző a sor végéről. A hibaüzenet szó szerint ezt mondja: „pontosvesszőt vártam”.

2. hiba

Hibás kódC#
console.WriteLine("Szia!");

CS0103: The name 'console' does not exist in the current context

Mi a hiba és a javítás?

A console kisbetűvel kezdődik. A C# megkülönbözteti a kis- és nagybetűt, ezért a helyes alak: Console.

3. hiba

Hibás kódC#
Console.WriteLine("Szia!);

CS1010: Newline in constant

Mi a hiba és a javítás?

Hiányzik a záró idézőjel, ezért a gép a sor végéig szövegnek tekint mindent, a zárójelet és a pontosvesszőt is. Helyesen: Console.WriteLine("Szia!");

Ha a Visual Studio magyar nyelvű, a hibaüzenet szövege magyarul jelenik meg, de a hibakód (például CS1002) ugyanaz. Ha elakadsz, a hibakódra érdemes rákeresni.

Mini projekt: az első konzolprogramom

Készíts rövid bemutatkozó programot! Most még minden kiírandó szöveget közvetlenül a kódba írunk.

Egy lehetséges megoldásC#
Console.WriteLine("AZ ELSŐ C# PROGRAMOM");
Console.WriteLine();
Console.WriteLine("Szia!");
Console.WriteLine("Ma megtanultam szöveget kiírni.");
Console.Write("A következő célom: ");
Console.WriteLine("változókat használni.");

Futtasd le, majd alakítsd a saját programoddá: módosíts legalább három kiírt szöveget!

Gyakorlófeladatok

Először próbáld meg segítség nélkül. A megoldást csak akkor nyisd le, ha elkészültél vagy elakadtál.

1. feladat – Háromsoros üzenet

Írj programot, amely három külön sorban kiírja a nevedet, a kedvenc tantárgyadat és egy mondatot arról, mit szeretnél megtanulni programozásból.

Megoldás megmutatása
Console.WriteLine("Név: Anna");
Console.WriteLine("Kedvenc tantárgy: digitális kultúra");
Console.WriteLine("Szeretnék saját programokat készíteni.");

2. feladat – Egy sorban vagy több sorban?

Készítsd el ezt a kimenetet úgy, hogy legalább egyszer Write() és legalább egyszer WriteLine() utasítást használj:

Elvárt kimenetKonzol
C# + gyakorlás = fejlődés
Jöhet a következő lecke!
Megoldás megmutatása
Console.Write("C# + gyakorlás = ");
Console.WriteLine("fejlődés");
Console.WriteLine("Jöhet a következő lecke!");

3. feladat – Mini névjegy

Készíts konzolos névjegyet: legyen címsora, egy üres sora, legalább három információja és egy egysoros megjegyzése a kódban.

Megoldás megmutatása
// Egyszerű konzolos névjegy
Console.WriteLine("NÉVJEGY");
Console.WriteLine();
Console.WriteLine("Név: Anna");
Console.WriteLine("Érdeklődés: programozás");
Console.WriteLine("Kedvenc nyelv: C#");

Gyors önellenőrzés

Válaszolj fejben, és csak utána nyisd le a választ.

1. Melyik utasítás kezd új sort a kiírás után?

A Console.WriteLine().

2. Miért vannak idézőjelek a „Szia!” körül?

Mert ez szöveges adat. A C# a szöveget idézőjelek között várja; az idézőjelek maguk nem jelennek meg a kimenetben.

3. Mit ír ki két egymás utáni Write() utasítás?

A második kiírás ugyanabban a sorban folytatódik, mert a Write() nem kezd új sort.

4. Hogyan készítesz üres sort?

A Console.WriteLine(); utasítással.

5. Lefut-e ez a sor: console.writeline("Szia");

Nem. A C# megkülönbözteti a kis- és nagybetűt, a helyes alak: Console.WriteLine("Szia");

Mit tudsz már?

  • Megírtál és lefuttattál egy C# programot.
  • Tudod, mire való a Console.WriteLine(), és mit jelentenek a részei.
  • Tudod, miben különbözik a Write() és a WriteLine().
  • Tudsz üres sort és megjegyzést írni.
  • Felismered a hiányzó pontosvesszőt, a rossz kis- és nagybetűt és a lezáratlan szöveget.

Következő lecke: Változók és adattípusok

A program már adatokat is tárol: nevet, számokat, karaktert és logikai értéket.