tanszek:oktatas:szamitastechnika:egyszeru_mintapeldak

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:szamitastechnika:egyszeru_mintapeldak [2023/10/03 17:05] kneheztanszek:oktatas:szamitastechnika:egyszeru_mintapeldak [2023/10/11 08:19] (current) knehez
Line 1: Line 1:
 +==== A változók pontos megadása ====
 +
 +A következő érdekes példák a változók pontos típusmegadására figyelmeztetnek.
 +
 **Feladat**: Változók definíciója és alapvető számolások **Feladat**: Változók definíciója és alapvető számolások
 <sxh c> <sxh c>
Line 37: Line 41:
 **f = 70.0 / 3.0;** helyett ha ezt írjuk: **f = 70 / 3;** ezért fog más eredményt adni hiszen így elvesztjük a tizedesjegyeket. **f = 70.0 / 3.0;** helyett ha ezt írjuk: **f = 70 / 3;** ezért fog más eredményt adni hiszen így elvesztjük a tizedesjegyeket.
  
-**Feladat**: Hibásan számol a c nyelv??? Mi lehet a hiba?+**1. Feladat**: Hibásan számol a c nyelv??? Mi lehet a hiba?
  
 <sxh c> <sxh c>
Line 51: Line 55:
 } }
 </sxh> </sxh>
 +A 3 nem osztója a 13-nak. A 13 / 3 eredményét a c változóban egészként tároljuk, ilyenkor az eredmény egész részét aza a 4-et fogjuk eredményként kapni.
  
-**Feladat**: Az előző kódban változtassuk meg a c-t float-ra és a printf()-ben használjunk %f-et és próbáljuk ki úgy is. Segített?+Ahhoz hogy a tizedes jegyeket is megkapjuk, próbáljunk meg áttérni float adattípusra, a következő példa alapján. 
 + 
 +**2. Feladat**: Az előző kódban változtassuk meg a c-t float-ra és a printf()-ben használjunk %f-et és próbáljuk ki úgy is. Segített?
  
 <sxh c> <sxh c>
Line 67: Line 74:
 </sxh> </sxh>
  
-**Feladat**: Hozzon létre egy **unsigned int** változót 2 illetve egy **int** változót -1 értékkel és végezzen összehasonlítást, hogy 2 > -1? Magyarázza meg, hogy mi történik és miért?+Azért nem segít, mert az a / b elvégzésekor, mivel mind a két érték egész, az eredmény megint 4 lesz. A c-t hiába adtuk meg float-ként, akkor is a 4-es kerül bele. 
 + 
 +**3. Feladat**: Hozzon létre egy **unsigned int** változót 2 illetve egy **int** változót -1 értékkel és végezzen összehasonlítást, hogy 2 > -1? Magyarázza meg, hogy mi történik és miért?
  
 <sxh c> <sxh c>
Line 87: Line 96:
 </sxh> </sxh>
  
-**Miért számol hibásan (pontatlanul) a következő kód?**+**4. Feladat: Miért számol hibásan (pontatlanul) a következő kód?**
 <sxh c> <sxh c>
 #include <stdio.h>  #include <stdio.h> 
Line 108: Line 117:
 Magyarázzuk meg miért nem működik a (double) (a/b) típuskonverzió? Magyarázzuk meg miért nem működik a (double) (a/b) típuskonverzió?
  
-**Miért számol hibásan (pontatlanul) a következő kód?**+**5. Feladat: Miért számol hibásan (pontatlanul) a következő kód?**
 <sxh c> <sxh c>
 #include <stdio.h> #include <stdio.h>
Line 120: Line 129:
 </sxh> </sxh>
  
-Az eredménynek 2 * 8 nak kellene lennie, de 11-et ír ki, mi lehet a hiba? Az a probléma, hogy a #define nem végez műveletet, hanem egyszerűen behlyettesít, így az a * N művelet a * 3 + 5 lesz, ami a precedencia (sorrendi) szabályok miatt 6 + 5 = 11 lesz.+Az eredménynek 2 * 8 nak kellene lennie, de 11-et ír ki, mi lehet a hiba? Az a probléma, hogy a #define nem végez műveletet, hanem egyszerűen behelyettesít, így az a * N művelet a * 3 + 5 lesz, ami a //precedencia// (sorrendi) szabályok miatt 6 + 5 = 11 lesz.
  
 ==== Formátum leírók ==== ==== Formátum leírók ====
tanszek/oktatas/szamitastechnika/egyszeru_mintapeldak.1696352741.txt.gz · Last modified: 2023/10/03 17:05 by knehez