Informatika2-2013/Gyakorlat03

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „== Ismétlés == * Beolvasás scanf-el: <c> int z; printf("Add meg z értékét: "); scanf("%d", &z); </c> Az &-et ne hagyjuk ki. * Ciklusok: for, while, do-while …”)
 
24. sor: 24. sor:
 
** Még ha elõre ismert számú adatot kell beolvasnunk akkor se feltétlen praktikus mindet eltárolni.
 
** Még ha elõre ismert számú adatot kell beolvasnunk akkor se feltétlen praktikus mindet eltárolni.
 
** Tudunk olyan algoritmusokat írni amik "on the fly" mûködnek, miközben a beolvasás történik már fut a számolás, nem csak a beolvasás után.
 
** Tudunk olyan algoritmusokat írni amik "on the fly" mûködnek, miközben a beolvasás történik már fut a számolás, nem csak a beolvasás után.
 +
 +
== Feladatok ==
 +
 +
==== 1. Sakktábla ====
 +
 +
Rajzolj ki egy ''NxN''-es sakktábla mintát, ahol X-szel jelöljük a fekete mezőket, és üresen hagyjuk (egy szóköz) a fehéreket. Nem kell keretet adni a táblának. A sakktábla méretét (''N'') a felhasználótól kérd be!
 +
 +
Tipp: a ciklusokat egymásba is ágyazhatjuk, de ilyenkor nagyon kell figyelni a ciklusváltozókra!
 +
 +
Egymásba ágyazott ciklus példa:
 +
<c>
 +
#include<stdio.h>
 +
 +
int main(void) {
 +
    int i;
 +
    int j;
 +
 +
    for(i = 0; i < 10; i++) {
 +
        printf("i: %d \n", i);
 +
        for(j = 0; j < i; j++) {
 +
            printf(" (%d, %d) ", i, j);
 +
        }
 +
        printf("\n");
 +
    }
 +
    printf("\n");
 +
}
 +
</c>
 +
 +
==== 5. Prímtényezõ keresés ====
 +
 +
Írj programot, ami megkeresi egy a felhasználó által adott szám prímtényezõit és sorban kiírja azokat. (A hiba elkerülése végett elõször vizsgáljuk meg, hogy nem 0-t vagy 1-et kaptunk-e.)
 +
 +
Nem kell bonyolultra gondolni azonnal, meg lehet oldani úgy is, hogy egyesével megpróbáljuk elosztani az adott számunkat 2-tõl kezdve egyesével haladva egész számokkal, amíg 1-hez nem jutunk.
 +
 +
Emlékezzünk, hogy a maradék képzés (modulo) jele C-ben is a %
  
 
== A gyakorlat anyaga ==
 
== A gyakorlat anyaga ==

A lap 2013. február 26., 02:59-kori változata

Tartalomjegyzék

Ismétlés

  • Beolvasás scanf-el:
int z;
printf("Add meg z értékét: ");
scanf("%d", &z);

Az &-et ne hagyjuk ki.

  • Ciklusok: for, while, do-while
  • Megírtunk egy egyszerû programot, ami egyesével összeadta a pozitív egész számokat növekvõ sorrendben amíg el nem ért egy küszöböt. Tanulság:
    • For ciklus feltétele nem feltétlen függ közvetlenül a ciklusváltozótól.
    • Ha elakadnánk lehetséges, hogy csak egy új változót kellene felvenni.
  • Írtunk programot amivel akárhány számot beolvashattunk és akkor állt le ha egymás után azonosat adtunk neki. Tanulság:
    • Ha elõre nem ismert számú adatot akarunk beolvasni, hasznos lehet egy while vagy do-while ciklus.
    • Korábbi adatokat eltárolhatunk egy változóban, ha szükségünk lehet még rájuk.
  • Írtnunk minimum és/vagy maximum keresõ programot. Tanulság:
    • Még ha elõre ismert számú adatot kell beolvasnunk akkor se feltétlen praktikus mindet eltárolni.
    • Tudunk olyan algoritmusokat írni amik "on the fly" mûködnek, miközben a beolvasás történik már fut a számolás, nem csak a beolvasás után.

Feladatok

1. Sakktábla

Rajzolj ki egy NxN-es sakktábla mintát, ahol X-szel jelöljük a fekete mezőket, és üresen hagyjuk (egy szóköz) a fehéreket. Nem kell keretet adni a táblának. A sakktábla méretét (N) a felhasználótól kérd be!

Tipp: a ciklusokat egymásba is ágyazhatjuk, de ilyenkor nagyon kell figyelni a ciklusváltozókra!

Egymásba ágyazott ciklus példa:

#include<stdio.h>
 
int main(void) {
    int i;
    int j;
 
    for(i = 0; i < 10; i++) {
        printf("i: %d \n", i);
        for(j = 0; j < i; j++) {
            printf(" (%d, %d) ", i, j);
        }
        printf("\n");
    }
    printf("\n");
}

5. Prímtényezõ keresés

Írj programot, ami megkeresi egy a felhasználó által adott szám prímtényezõit és sorban kiírja azokat. (A hiba elkerülése végett elõször vizsgáljuk meg, hogy nem 0-t vagy 1-et kaptunk-e.)

Nem kell bonyolultra gondolni azonnal, meg lehet oldani úgy is, hogy egyesével megpróbáljuk elosztani az adott számunkat 2-tõl kezdve egyesével haladva egész számokkal, amíg 1-hez nem jutunk.

Emlékezzünk, hogy a maradék képzés (modulo) jele C-ben is a %

A gyakorlat anyaga

Személyes eszközök