26. C#, Python

C# (2000)

C# je moderní staticky typovaný programovací jazyk s virtuálním strojem (https://www.itnetwork.cz/csharp/zaklady/c-sharp-tutorial-uvod-do-jazyka-a-dot-net-framework), který je objektově orientovaný a typově bezpečný[2]. Byl poprvé představen veřejnosti v roce 2000 jako součást Visual Studia.NET[3]. C# je velmi podobný jazykům C, C++, Java a JavaScript[2].

C# se používá pro vývoj mnoha typů aplikací, které běží v .NET[2]. Jazyk se neustále vyvíjí a přidává nové funkce[1]. Například, v C# verzi 12, která byla vydána v listopadu 2023, byly přidány funkce jako primární konstruktory, výrazy kolekce, vložená pole, volitelné parametry ve výrazech lambda a další[1].

C# klade důraz na kompatibilitu mezi verzemi, aby se programy a knihovny mohly v průběhu času vyvíjet kompatibilním způsobem[2]. C# má jednotný systém typů, což znamená, že všechny typy v C#, včetně primitivních typů, jako jsou int a double, dědí z jednoho kořenového object typu[2].

C sharp, vyvinutý společností Microsoft s cílem spojit výpočetní schopnosti jazyka C++ s jednoduchostí jazyka Visual Basic, vychází z jazyka C++ a v mnoha ohledech se podobá jazyku Java. Používá se téměř ve všech produktech společnosti Microsoft a slouží především k vývoji desktopových aplikací.

 

 

Úvod do C# a .NET frameworku

1.1       Komentáře

/*

  Toto je komentář. Pokud komentujeme tímto způsobem,

  můžeme komentář rozdělit do více

  řádků

  */

  // další komentář, ale platí jen v oblasti jednoho řádku, pro další řádek

  // musím opět použít dvojici lomítek

Komentář je část programu, který překladač naprosto ignoruje a nijak neovlivní chod samotného programu.

1.2        Proměnná

 je pojmenované místo v operační paměti počítače, kam si můžeme uložit informace (jméno uživatele, aktuální čas nebo databázi článků), které se mohou změnit. Toto místo má podle typu proměnné také vyhrazenou určitou velikost, kterou proměnná nesmí přesáhnout (např. číslo nesmí být větší než 2 147 483 647).Má vždy nějaký datový typ, může to být číslo, znak, text… Proměnnou je nutno nejdříve tzv. deklarovat, čili říci jazyku jak se bude jmenovat a jakého datového typu bude.

C# je staticky typovaný jazyk, všechny proměnné musíme nejprve deklarovat s jejich datovým typem.

1.2.1       Typy proměnných

  • Celá čísla: int
  • Desetinná čísla: double
  • Textový řetězec: string
  • 1 znak: char
  • Logická hodnoty: bool

1.2.1.1       Celkový přehled všech datových typů

  • Hodnotové typy
NázevTypVelikost v bajtechRozsah
sbyteSystem.SByte1-128 až 127
shortSystem.Int162-32 768 až 32 767
intSystem.Int324– 2 147 483 648 až 2 147 483 647
longSystem.Int6489,223,372,036,854,775,808 až 9,223,372,036,854,775,807
byteSystem.Byte10 až 255
ushortSystem.UInt1620 až 65,535
uintSystem.UInt3240 až 4,294,967,295.
ulongSystem.UInt6480 až 18 446 744 073 709 551 615
floatSystem.Single4+/-1.5 * 10-45 až +/-3.4 * 1038
doubleSystem.Double8+/-5.0 * 10-324 až +/-1.8 * 10308
decimalSystem.Decimal16 
boolSystem.Boolean1Jsou zde hodnoty true nebo false
charSystem.Char2 

  • Odkazové typy
NázevTypVelikost v bajtechRozsah
objectSystem.Object Kořenový typ, od něhož jsou odvozeny všechny ostatní typy
stringSystem.String Řetězec znaků Unicode

bool je jeden z nejjednodušších datových typů. Může nabývat pouze dvou hodnot – false (nepravda) nebo true (pravda). Bool je důležité pochopit při používání logických operátorů, jako je podmínka if. 

1.2.2       Deklarace proměnných

 

Kdy? Vždy před prvním použitím.

Kde? Kdekoli ve zdrojovém kódu.

Jak? Datový typ proměnná;

1.3       Jak může proměnná získat hodnotu?

  1. Přiřazovacím příkazem
    proměnná = výraz; (čti do proměnné přiřaď výraz)

double PI = 3.14;

double ve zdrojovém kódu vždy píšu s desetinnou tečkou např. 3.14

2.Příkazem vstupu = zadáním z klávesnice

1.3.1       Zadávání z klávesnice = příkaz vstupu

string radek= Console.ReadLine();

char volba = Console.ReadKey().KeyChar;

Console.WriteLine(„Zadej délku obdélníka: „);

double delka = Convert.ToDouble(Console.ReadLine());

do double zadávám z klávesnice s desetinnou čárkou např. 3,14

1.3.2       Výstup na monitor

            Console.WriteLine(„Na řádku bylo:“);

Console.WriteLine(radek);
Console.WriteLine(„Na řádku bylo:“ + radek  );

1.4       Parsování = přetypování (změna datového typu)

1.4.1       String na int

string cislo;

cislo=“458“

int a = int.Parse(cislo);

nebo

int a = Convert.ToInt32(cislo);

1.4.2       Int na string

textcislo = Convert.ToString(a);

1.4.3       String na double


string value;
double number;
number = Double.Parse(value);

nebo

number = Convert.ToDouble(value);

float b = float.Parse(Console.ReadLine());

1.4.4       Double na string

  
 textcislo = Convert.ToString(a); 

1.1       Podmíněný příkaz

1.1.1       úplný

if (podmínka)

   {

 

   }

else

   {

 

   }

1.1.2       neúplný

if (podmínka)

   {

 

   }

1.1.3       Vícenásobné větvení

Výraz musí být celočíselný, char nebo string.

switch (výraz) {   case hodnota výrazu: příkazy;        break;   case hodnota výrazu: příkazy;        break;   default: příkazy;  //vykonají se, když výraz nabude jiné hodnoty než v case        break; }

Např.

int caseSwitch = 1;    

switch (caseSwitch)

      {

case 1:

              Console.WriteLine(„Case 1“);

break;

case 2:

              Console.WriteLine(„Case 2“);

break;

default:

              Console.WriteLine(„Default case“);

break;

      }

Relační

Operátor

Význam

a < b

menší než

a > b

větší než

a <= b

menší nebo rovno

a >= b

větší nebo rovno

a == b

rovná se

a != b

nerovná se

int c = (d<10) ? 5:15

zkrácená podmínka

 

Logické

Operátor

Význam

&&

logické AND

||

logické OR

!

logická negace

1.1       Cykly

1.1.1       For cyklus – s řídící proměnnou

Známý počet opakování cyklu

For+tab+tab

for (int i = 0; i <10; i++)

            {

 

            }

 

1.1.2       Do-while – s podmínkou na konci (do+tab+tab)

do

{

P1;

.

      PN;

} while (podmínka);

Čti dělej příkazy zatímco platí podmínka

1.1.3       While – s podmínkou na začátku (while+tab+tab)

while (podmínka)

{

P1;

.

      PN;

}

Čti zatímco platí podmínka, dělej příkazy

 

1.1       Pole

Pole je množina prvků stejného typu, jdoucích v paměti za sebou.
Každý prvek pole nemá své vlastní jméno, nýbrž pole je pojmenováno jako celek.
Prvky pole jsou indexovány (označeny čísly od 0) kvůli rychlému a snadnému přístupu.
K prvkům pole přistupujeme prostřednictvím jména pole a indexu.
Index je pořadové číslo prvku v rámci pole, uváděné v hranatých závorkách: Jmeno[index]
 Pole je vhodné pro zpracování cyklem – indexem bývá řídící proměnná cyklu.

Délka pole je Length

 

1.1.1       Deklarace

int[] array = new int[5];

string[] stringArray = new string[6];

 

1.1.2       Inicializace pole

int[] array1 = new int[] { 1, 3, 5, 7, 9 };

string[] weekDays = new string[] { „Sun“, „Mon“, „Tue“, „Wed“, „Thu“, „Fri“, „Sat“ };

int[] pole = new int[10];

pole[0] = 1;

for (int i = 0; i < 10; i++)

    pole[i] = i + 1;

for (int i = 0; i < pole.Length; i++)

    Console.WriteLine(pole[i]);

              }

       }

int[] array2 = { 1, 3, 5, 7, 9 };

string[] weekDays2 = { „Sun“, „Mon“, „Tue“, „Wed“, „Thu“, „Fri“, „Sat“ };

int[] array3;

array3 = new int[] { 1, 3, 5, 7, 9 };   // OK

//array3 = {1, 3, 5, 7, 9};   // Error

2        ekvivalentní zápisy:

 

int[] a = new int[] {1, 2, 3};

int[] t = new int[3];

t[0] = 1;

t[1] = 2;

t[2] = 3;

int[] a = t;

 

Následující příklad vytvoří pole int  10 prvků, inicializuje pole a vytiskne obsah pole.

using System;

class ArrayExample

{

    static void Main()

    {

        int[] a = new int[10];

        for (int i = 0; i < a.Length; i++)

        {

            a[i] = i * i;

        }

        for (int i = 0; i < a.Length; i++)

        {

            Console.WriteLine(a[i]);

        }

    }

}

 

Proměnná délka pole:

Console.WriteLine(„Ahoj, spočítám ti průměr známek. Kolik známek zadáš?“);

int pocet = int.Parse(Console.ReadLine());

int[] cisla = new int[pocet];

for (int i = 0; i < pocet; i++)

{

    Console.Write(„Zadejte {0}. číslo: „, i + 1);

    cisla[i] = int.Parse(Console.ReadLine());

}

Console.WriteLine(„Průměr tvých známek je: {0}“, cisla.Average());

Console.ReadKey();

 

Python – historie

 

Python byl vytvořen v roce 1990-1991 Guido van Rossumem v Matematickém centru Stitching v Nizozemsku jako následník jazyka nazývaného ABC. Guido i nadále zůstává hlavním autorem, ačkoliv je zde mnoho dalších přispěvatelů. Je možná zajímavé, že první myšlenka na tento projekt napadla autora na konci roku 1989, v čase naší sametové revoluce. Druhá podivná náhoda je i jeho příjmení: Rossum. Až moc připomíná český Rozum a i Čapkovo dílo R.U.R. (Rosum’s Universal Robots).

Jméno Python pochází z Monty Python’s Flying Circus. Tvůrci tohoto zábavného pořadu tvrdí, že nemá žádný význam a jim akorát připadalo zábavné. Stejně tak tvůrce Pythona GvR říká, že v době, kdy hledal jméno pro svůj nový jazyk, běžel v televizi tento seriál a že mu toto slovo připadalo vhodné. Proto snad dosud Python nemá oficiální logo, přestože na mnoha webech se objevuje had (přesněji krajta), což je jeden z anglických významů slova Python. Přesto oba tvůrci souvislosti s hady odmítají.

Vlasnosti jazyka

Python je interpretovaný, interaktivní a objektově orientovaný programovací jazyk. Často je srovnáván s Tcl, Perl, Scheme nebo Javou.

Python je srozumitelnější a vyžaduje méně řádků kódu než mnoho jiných počítačových programovacích jazyků. Populární weby, jako je Instagram, používají rámce napsané v jazyce Python.

Python se jednoduše učí a je to mocný programovací jazyk. Má výkonné vysokoúrovňové datové struktury a jednoduchý, přesto mocný, přístup k objektovému programování. Pythonovská elegantní syntaxe a dynamické typování, společně s jeho interpretovanou povahou, ho činí ideálním jazykem pro skriptování a rychlý vývoj aplikací v mnoha oblastech na většině platforem.

Pythonovský interpret a rozsáhlá standardní knihovna jsou zcela volně šiřitelné ve zdrojové nebo binární formě na všech hlavních platformách z pythonovské webové stránky Python.org. Na stejné stránce naleznete distribuce nebo odkazy na mnoho volně šiřitelných pythonovských modulů, programů a nástrojů třetích stran a i další dokumentaci.

Pythonovský interpret se dá snadno rozšířit pomocí nových funkcí a datových typů implementovaných v C nebo C++ (nebo jiného jazyka volatelného z C). Je také vhodný jako rozšiřující jazyk pro aplikace, které si uživatel přizpůsobuje svým potřebám.

Kdo Python používá

  • Seznam – freemail
  • Google
  • Industrial Light & Magic – StarWars II
  • a další…

Co se s Pythonem dá dělat