spse:pm1:datove-typy

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
spse:pm1:datove-typy [2021/01/11 21:43] – vytvořeno jendaspse:pm1:datove-typy [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +~~NOCACHE~~
 +~~REVEAL theme=dokuwiki&transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1480x960~~
 +
 ====== Datové typy ====== ====== Datové typy ======
  
Řádek 15: Řádek 18:
 |unsigned long int|0 - 2<sup>31</sup>-1|32 bitů| |unsigned long int|0 - 2<sup>31</sup>-1|32 bitů|
 ((https://www.itnetwork.cz/cplusplus/zaklady/c-plus-plus-tutorial-typovy-system-podruhe-datove-typy-string)) ((https://www.itnetwork.cz/cplusplus/zaklady/c-plus-plus-tutorial-typovy-system-podruhe-datove-typy-string))
- 
- 
-==== Výstupní konverze ==== 
- 
-<code c> 
- 
-</code> 
- 
  
 ===== Desetinná čísla ===== ===== Desetinná čísla =====
Řádek 31: Řádek 26:
 |long double|+-1.7 * 10<sup>−308</sup> až +-1.7 * 10<sup>308</sup>|15 číslic| |long double|+-1.7 * 10<sup>−308</sup> až +-1.7 * 10<sup>308</sup>|15 číslic|
  
-<WRAP center round important 80%> +<WRAP center round important 100%> 
-Pozor, vzhledem k tomu, že desetinná čísla jsou v počítači uložena ve dvojkové soustavě, dochází k určité ztrátě přesnosti. Odchylka je sice téměř zanedbatelná, nicméně když budete programovat např. finanční systém, mohou se objevit problémy.+  Pozor, vzhledem k tomu, že desetinná čísla jsou v počítači uložena ve dvojkové soustavě, dochází k určité ztrátě přesnosti. Odchylka je sice téměř zanedbatelná, nicméně když budete programovat např. finanční systém, mohou se objevit problémy.
 </WRAP> </WRAP>
 +<fragment-block>
 <code> <code>
 double d = 3.14; double d = 3.14;
-float f = 3.14f;+float f = 3.14;
 </code> </code>
 +</fragment-block>
 +
  
 ===== Další vestavěné datové typy ===== ===== Další vestavěné datové typy =====
  
 |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak| |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak|
-|wchar_t|U+0000 až U+ffff (0 až 65 535)|16 bitů|"široký" znak| 
 |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota|
  
Řádek 49: Řádek 45:
 ==== char ==== ==== char ====
   * Typ char (character) nám reprezentuje jeden znak. Na rozdíl od typu string, který reprezentoval celý řetězec hodnot typu char, píšeme znaky v C++ do jednoduchých apostrofů:   * Typ char (character) nám reprezentuje jeden znak. Na rozdíl od typu string, který reprezentoval celý řetězec hodnot typu char, píšeme znaky v C++ do jednoduchých apostrofů:
 +<fragment-block>
 +
 <code c> <code c>
 char c = 'A'; char c = 'A';
 </code> </code>
 +</fragment-block>
  
 ==== bool ==== ==== bool ====
   * Typ bool nabývá dvou hodnot: true (pravda) a false (nepravda). Budeme ho používat zejména tehdy, až se dostaneme k podmínkám. Do proměnné typu bool lze uložit jak přímo hodnotu true/false, tak i výsledek logického výrazu nebo celé číslo (0 jako false a cokoli jiného jako true).   * Typ bool nabývá dvou hodnot: true (pravda) a false (nepravda). Budeme ho používat zejména tehdy, až se dostaneme k podmínkám. Do proměnné typu bool lze uložit jak přímo hodnotu true/false, tak i výsledek logického výrazu nebo celé číslo (0 jako false a cokoli jiného jako true).
 +<fragment-block>
  
 <code c> <code c>
Řádek 69: Řádek 69:
  
 </code> </code>
 +</fragment-block>
 +
 +
 +===== Výstupní konverze =====
 +
 +^typ^význam^
 +|d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl.|
 +|u|Celé číslo bez znaménka.|
 +|o|Číslo v osmičkové soustavě.|
 +|x, X|Číslo v šestnáctkové soustavě. Písmena ABCDEF se budou malá při použití malého x, nebo velká při použití velkého X.|
 +|f|Racionální číslo (float, double) bez exponentu.|
 +|e, E|Racionální číslo s exponentem, implicitně 1 pozice před des. tečkou a 6 za ní. Exponent uvozuje malé nebo velké E.|
 +|g, G|Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje des. tečku, pokud nemá des. část.|
 +|c|Jeden znak.|
 +|s|Řetězec.|
 +((https://www.sallyx.org/sally/c/c07.php))
 +---->
 +
 +<WRAP center round tip 100%>
 +Co se děje v následující ukázce?
 +</WRAP>
 +
 +<fragment-block>
 +<code c>
 + 
 +#include <stdio.h>
 + 
 +int main(void)
 +{
 +    char *COPYRIGHT = "(C)";
 +    int ROK = 2003;
 + 
 +    printf("%i %u %o %x %X %f %e %G\n", -5, -5, 200, 200, 200, 10.0,
 +           10.0, 10.0);
 +    printf("%s %i\n", COPYRIGHT, ROK);
 +    return 0;
 +}
 +/* Výstup:
 +-5 4294967291 310 c8 C8 10.000000 1.000000e+01 10
 +(C) 2003
 +*/
 +
 +</code>
 +</fragment-block>
 +
 +<----
 +
 +====== Shrnutí ======
 +---->
 +<code c>
 +  /* Zakladni pouziti - cteni ze vstupu
 +   */   
 +  printf ( "Cele cislo:\n" );
 +  scanf  ( "%d", &a ); /* pozor, & a */
 +  printf ( "a = %d\n", a );
 +  
 +  printf ( "Desetinne cislo (double):\n" );
 +  scanf  ( "%lf", &b ); /* pozor, & b, pozor %lf */
 +  printf ( "b = %f\n", b ); /* zde %f, ne lf */
 +
 +  printf ( "Desetinne cislo (float):\n" );
 +  scanf  ( "%f", &c ); /* pozor, & c, pozor %f */
 +  printf ( "c = %f\n", c ); /* zde %f */
 +
 +  printf ( "Znak (char), ne whitespace:\n" );
 +  scanf  ( "%c", &d ); /* pozor, & d */
 +  printf ( "d = %c\n", d ); 
 +  /* Proc nelze znak zadat?
 +   */
 +
 +  printf ( "Retezec, max 19 znaku:\n" );
 +  scanf ( "%s", str ); /* pozor, zde ne & */
 +  printf ( "str = %s\n", str );
 +
 +</code>
 +<----
 +---->
 +<code c>
 +  /* Dalsi formaty
 +   */
 +   
 +  printf ( "Unsigned int:\n" );
 +  scanf ( "%u", &u );
 +  printf ( "u = %d\n", u );
 +   
 +  printf ( "Short int:\n" ); 
 +  scanf ( "%hd", &s ); /* zde %h */
 +  printf ( "s = %d\n", s ); /* zde %d */
 +
 +  printf ( "Hex: \n" );
 +  scanf ( "%x", &u ); /* cteme hex */
 +  printf ( "u = %u\n", u ); /* zobrazime jako dec, %u = unsigned int */
 +  
 +  printf ( "Oct: \n" );
 +  scanf ( "%o", &u ); /* cteme oct */
 +  printf ( "u = %u\n", u ); /* zobrazime jako dec */
 +</code>
 +<----
  
  
  • spse/pm1/datove-typy.1610401422.txt.gz
  • Poslední úprava: 2024/07/07 16:48
  • (upraveno mimo DokuWiki)