User Tools

Site Tools


tanszek:oktatas:szamitastechnika:elagazasok_ciklusok

1. feladat

Háromszögosztályozó program készítése, egymásba tokozott if-else szerkezetek:

    #include <stdio.h>
    main()
    {
        unsigned int a,b,c;
        printf("Háromszogtipus meghatarozasa\n\n");
        printf("Adja meg az oldalakat csokkeno sorrendben ! \n");
        printf("A= ");
        scanf("%u",&a);
        printf("B= ");
        scanf("%u",&b);
        printf("C= ");
        scanf("%u",&c);
        
        if (a < b + c)
        {
            if (b * b + c * c == a * a)
            {
                if (b == c)
                {
                    printf("egyenlőszárú derékszögű ");
                }
                else
                {
                    printf("derékszögű ");
                }
            }
            else if (a == c && c == b)
            {
                printf("egyenlő oldalú (szabályos) ");
            }
            else if (a == b || b == c)
            {
                printf("egyenlőszárú ");
            }
            else
            {
                printf("általános ");
            }
        }
        else
        {
            printf("nem alkotnak háromszöget ");
        }
    }  /* Megj: egyenlő szárú derékszögű csak valós oldalhosszal teljesül.*/

2. feladat

A switch ráugrat a címkére és onnan fut tovább.

    #include <stdio.h>
    
    main()
    {
     int i ;
     printf("Hány szót írjak ki? (max.3)=");
     scanf("%d", &i);
     switch ( i )
     {
      case 3: printf("\nAlma");
      case 2: printf("\nKörte");
      case 1: printf("\nBarack");
     }
    }

3. feladat

    #include <stdio.h>
    
    int main() {
        char operator;
        float firstNumber, secondNumber;
    
        printf("Kerem az muveletet (+, -, *, /): ");
        scanf("%c", &operator);
    
        printf("Irjon be ket szamot: ");
        scanf("%f %f", &firstNumber, &secondNumber);
        
    	switch(operator)
        {
            case '+':
                printf("%f + %f = %f", firstNumber, secondNumber, firstNumber + secondNumber);
                break;
            case '-':
                printf("%f - %f = %f",firstNumber, secondNumber, firstNumber - secondNumber);
                break;
            case '*':
                printf("%f * %f = %f",firstNumber, secondNumber, firstNumber * secondNumber);
                break;
            case '/':
                printf("%f / %f = %f",firstNumber, secondNumber, firstNumber/secondNumber);
                break;
            default:
                printf("Hiba! Nincs ilyen muvelet");
        }
    }

4. feladat

A while ciklusszervező utasítás elöl tesztel:

    #include <conio.h> /* getch miatt */
    #include <stdio.h> /* printf, scanf miatt */
    main()
    {
      float adat, szumma = 0;
      while ( printf("\nVan adat? (I/N):") , getch() == 'I' )
      {
         printf("\nAdat=");
         scanf("%f", &adat);
         szumma += adat;
      }
      printf("\nAz összeg= %f",szumma);
    }

5. feladat

A do while ciklusszervező utasítás hátul tesztel:

	#include <stdio.h>
	#include <time.h>
	
	main()
	{
	int szam, tipp, n = 0;
	srand(time(NULL));
	szam = rand() % 10;
	szam++;
	printf("Gondoltam egy szamot 1-10 között \n %d", szam);
	do
	{
		printf("\nA tippje= ");
		scanf("%d",&tipp);
		n++;
	}
	while ( tipp != szam );
	printf("%d lepesben kitalalta!", n);
	}

6. feladat

Egyszerű példa a for utasításra: számok átlagának meghatározása

    #include <conio.h> /* clrscr() miatt */
    #include <stdio.h>
    
	main()
    {
      unsigned int  szumma, k, n ;
    
      printf("Az elso hany szam atlagat szamitsam? n= ");
      scanf("%u",&n);
      
      for ( szumma = 0, k = 1 ; k <= n ; k++)
      {
          szumma += k;
      }
      printf("Az első %u szám átlaga= %u",  n, szumma);
    }

tanszek/oktatas/szamitastechnika/elagazasok_ciklusok.txt · Last modified: 2022/09/05 21:48 by knehez