HTML

Proghelp

Programozási tutorial-ok és feladat kidolgozások főleg Debreceni Egyetem Mérnök Informatikus hallgatóinak számára!

Friss topikok

Linkblog

C gyors talpaló III. lecke

szimih 2011.02.15. 18:40

3. gyorstalpaló témánk a ciklusok, van is C-ben 3 féle.

Mint minden magas szintű programozási nyelvben a C-ben is vannak olyan utasítások, melyek egy feltételtől függően többször is végrehajtják ugyanazt az utasítást, vagy utasítás blokkot.


I. while ciklus:

Felépítése:
   
         while (kifejezés)
               utasítás
               
      több utasítás esetén:
      
         while (kifejezés)
            {
               utasítás1
               utasítás2
                  .
                  .
               utasításn
            }

A while ciklus elől tesztelős ciklus, mely annyit tesz hogy a ciklusmagba csak akkor lépünk be ha a feltétel igaz, és az utasításokat is addig hajtjuk végre amíg a feltétel igaz ( az az nullától különböző szám, fránya C meg a matematika:) ).

Első példaprogram:

#include<stdio.h>
   
int main()
      {
         long int osszeg = 0;
         int i=1, n;
         
         printf("Meddig osszegezzem a szamokat: ");
         scanf("%d",&n);
         
         while( i <= n )
            {
               osszeg+=i;
               i++;            
            }
         printf("Az elso %d szam osszege: %u\n",n,osszeg);
         
         return 0;
      }

Nézzünk meg még egy rövidebb változatot:

#include<stdio.h>
   
int main()
      {
         long int osszeg = 0;
         int n;
         
         printf("Meddig osszegezzem a szamokat: ");
         scanf("%d",&n);
         
         printf("Az elso %d szam osszege: ",n);
         
         while( n )
            {
               osszeg+=n--;                           
            }
         printf("%u\n",osszeg);
         
         return 0;
      }

Fent két programunk ugyan azt az eredményt adja ugyanarra a bemenetre csak a második kicsit tömörebb.
Program lényege: bekér egy számot és 1-től eddig a számig összeadja a közbülső számokat.

Pl.:
Meddig osszegezzem a szamokat: 5
Az elso 5 szam osszege: 15 // 1+2+3+4+5


II. for ciklus:

Felépítése:
     for ( kifejezés1 ; kifejezés2 ; kifejezés3 )
             utasítás

Több elem esetén hasonlóan a while ciklushoz az utasítások kapcsoszárójel közé kerülnek.

A kifejezés1-ben állítjuk be a ciklusváltozó kezdő értékét, a kifejezés kettőben a ciklusba való lépés feltételét, ez a leggyakrabban egy logikai kifejezés, a kifejezés3-ban pedig léptetjük a ciklusváltozót.
A for csiklus mindaddig fut míg a fetétel ( kifejezés2 ) hamissá nem válik.

Példaprogramunk ugyan az mint az előzőnél csak for ciklussal megvalósítva:

#include<stdio.h>
   
int main()
      {
         long int osszeg = 0;
         int i, n;
         
         printf("Meddig osszegezzem a szamokat: ");
         scanf("%d",&n);   
            
         for( i = 1 ; i <= n ; i++)
            osszeg+=i;
            
         printf("Az elso %d szam osszege: %u\n",n,osszeg);
         
         return 0;
      }     

Ismételten rövidebben:

#include<stdio.h>

int main()
      {
         long int osszeg = 0;
         int n;
         
         printf("Meddig osszegezzem a szamokat: ");
         scanf("%d",&n);   
         
         printf("Az elso %d szam osszege: ",n);
         
         for( ; n ; osszeg+=n--)
            ;
            
         printf("%u\n",osszeg);
         
         return 0;
      }  

Fent két programunk ugyan azt az eredményt adja ugyanarra a bemenetre csak a második kicsit tömörebb.
Program lényege: bekér egy számot és 1-től eddig a számig összeadja a közbülső számokat.
Meddig osszegezzem a szamokat: 5
Az elso 5 szam osszege: 15 // 1+2+3+4+5

III. do-while ciklus:

Felépítése:

            do
               {
                  utasítás
               }
            while (kifejezés)

A ciklusba itt is addig lépünk, amíg a kifejezés értéke nem 0, logikai kifejezés esetén amíg a kefejezés igaz.
Alapvetően abban különbözik az előző két ciklustól, hogy itt a ciklusmag utasítása legalább egyszer végrehajtódik.

#include<stdio.h>

int main()
      {
         long int osszeg = 0;
         int n;
            
         printf("Meddig osszegezzem a szamokat: ");
         scanf("%d",&n);   

         printf("Az elso %d szam osszege: ",n);
         
         do
         {
            osszeg+=n--;
            
         }
         while( n );
            
         printf("%u\n",osszeg);
         
         return 0;
      }  

Program lényege: bekér egy számot és 1-től eddig a számig összeadja a közbülső számokat.
Meddig osszegezzem a szamokat: 5
Az elso 5 szam osszege: 15 // 1+2+3+4+5

Ciklusoknál is érvényesek a logikai kifejezések kiértékelési sorrendjei.

Szólj hozzá!

A bejegyzés trackback címe:

https://proghelp.blog.hu/api/trackback/id/tr932773828

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása