Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00090 005534 13070776 na godz. na dobę w sumie
C#. Zadania z programowania z przykładowymi rozwiązaniami - książka
C#. Zadania z programowania z przykładowymi rozwiązaniami - książka
Autor: Liczba stron: 128
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-3981-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> c# - programowanie
Porównaj ceny (książka, ebook, audiobook).

C# w analizie konkretnych przykładów

C#, obecny na rynku od ponad dziesięciu lat, należy do tych języków programowania, bez których trudno się obejść - również dlatego, że jest jedynym językiem zaprojektowanym specjalnie dla platformy .NET i środowiska uruchomieniowego CLR. Dobry programista, student lub nauczyciel informatyki, a także każdy człowiek zainteresowany programowaniem powinien znać podstawy tego języka i umieć rozwiązywać konkretne zadania. Podobnie zresztą powinien opanować najważniejsze zagadnienia dotyczące programowania w językach Java, C++ i Turbo Pascal oraz umieć stosować je w praktyce. Ten rewelacyjny zbiór zadań pozwala szybko i przy minimalnym wysiłku opanować umiejętności programistyczne w obiektowym języku C# poprzez analizę typowych rozwiązań stosowanych w działających programach.

Książka 'C#. Zadania z programowania z przykładowymi rozwiązaniami' na konkretnych przykładach pokaże Ci, jak program napisany w języku C# komunikuje się z użytkownikiem poprzez operacje wejścia-wyjścia. Dowiesz się, jakie operatory będą Ci potrzebne i do czego można ich używać. Poznasz instrukcje sterujące przebiegiem programu (iteracyjne oraz wyboru). Zrozumiesz, jakie funkcje pełnią tablice jednowymiarowe i dwuwymiarowe oraz kolekcje. Następnie nauczysz się wykorzystywać obiektowe właściwości języka C# oraz zapisywać odpowiednie informacje w plikach tekstowych - a wszystko to zajmie Ci zaledwie chwilę. Rozwiązanie zamieszczonych tu zadań to droga na skróty do pełnego zrozumienia i zastosowania zalet języka C#.

Na skróty do celu!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Ewelina Burska Projekt okładki: Jan Paluch Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Kody wykorzystane w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/cshzap.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?cshzap Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. ISBN: 978-83-246-3981-6 Copyright © Helion 2012 Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treĈci Od autora ........................................................................................................... 5 Rozdziaä 1. Jak jözyk C# komunikuje siö z uĔytkownikiem .................................... 9 Informacje ogólne ............................................................................................................. 9 Rozdziaä 2. Instrukcje sterujñce przebiegiem programu — instrukcje wyboru ....... 17 Instrukcje wyboru ........................................................................................................... 17 Instrukcja if ... else ................................................................................................... 18 Instrukcja switch ... case ........................................................................................... 18 Rozdziaä 3. Instrukcje sterujñce przebiegiem programu — instrukcje iteracyjne ... 27 Instrukcje iteracyjne ....................................................................................................... 27 PĊtla for .................................................................................................................... 28 PĊtla do ... while ....................................................................................................... 28 PĊtla while ................................................................................................................ 29 Rozdziaä 4. Tablice i kolekcje ........................................................................... 57 Tablice ............................................................................................................................ 57 Kolekcje ................................................................................................................... 57 Tablice jednowymiarowe ......................................................................................... 58 Tablice dwuwymiarowe ........................................................................................... 61 PĊtla foreach ............................................................................................................. 75 Dziaáania na macierzach ................................................................................................. 81 Rozdziaä 5. Elementy programowania obiektowego ............................................. 91 WiadomoĞci ogólne ........................................................................................................ 91 Klasy, pola, metody ........................................................................................................ 91 Rekurencja .................................................................................................................... 101 Dziedziczenie ............................................................................................................... 107 Rozdziaä 6. Pliki tekstowe oraz pliki o dostöpie swobodnym ............................. 111 Informacje ogólne ......................................................................................................... 111 Pliki tekstowe ............................................................................................................... 111 Pliki o dostĊpie swobodnym ......................................................................................... 123 Serializacja ................................................................................................................... 125 Polecana literatura .......................................................................................... 127 4 C#. Zadania z programowania z przykäadowymi rozwiñzaniami Rozdziaä 2. Instrukcje sterujñce przebiegiem programu — instrukcje wyboru W tym rozdziale przedstawiono typowe zadania, wraz z przykáadowymi rozwiązaniami, z wykorzystaniem instrukcji wyboru. Instrukcje wyboru Instrukcje sterujące przebiegiem programu są jednym z najwaĪniejszych elementów w kaĪdym jĊzyku programowania. Instrukcje te, w poáączeniu z wyraĪeniami, pozwa- lają na zapisanie dowolnego algorytmu dziaáania programu. Instrukcje sterujące w jĊzyku C# moĪna podzieliü na:  instrukcje wyboru,  instrukcje iteracyjne (znane jako pĊtle),  instrukcje skoku. W rozdziale 2. zostaną przedstawione typowe zadania z wykorzystaniem instrukcji wy- boru, w rozdziale 3. zaĞ zadania z wykorzystaniem instrukcji iteracyjnych. W jĊzyku C# istnieją dwie instrukcje wyboru, które sáuĪą do przeprowadzania opera- cji na podstawie wartoĞci wyraĪenia:  instrukcja if ... else,  instrukcja switch ... case. 18 C#. Zadania z programowania z przykäadowymi rozwiñzaniami Instrukcja if ... else Instrukcja if ... else sáuĪy do sprawdzania poprawnoĞci wyraĪenia warunkowego i — w zaleĪnoĞci od tego, czy dany warunek jest prawdziwy, czy nie — pozwala na wykonanie róĪnych bloków programu. Jej ogólna postaü jest nastĊpująca: if (warunek) { ......... // instrukcje do wykonania, kiedy warunek jest prawdziwy } else { ......... // instrukcje do wykonania, kiedy warunek jest faászywy } Blok else jest opcjonalny, a instrukcja warunkowa w wersji skróconej ma postaü: if (warunek) { ......... // instrukcje do wykonania, kiedy warunek jest prawdziwy } Instrukcja switch ... case Instrukcja switch ... case pozwala w wygodny i przejrzysty sposób sprawdziü ciąg warunków i wykonaü kod w zaleĪnoĞci od tego, czy są one prawdziwe, czy faászywe. Jej ogólna postaü jest nastĊpująca: switch (wyraľenie) { case wartoħè_1 : instrukcje_1; break; case wartoħè_2 : instrukcje_2; break; ........................ case wartoħè_n : instrukcje_n; break; default : instrukcje; } Instrukcja break przerywa wykonanie caáego bloku case. UWAGA: jej brak moĪe do- prowadziü do uzyskania nieoczekiwanych wyników i pojawienia siĊ báĊdów w programie. Zadanie 2.1. Napisz program, który dla trzech liczb a, b, c wprowadzonych z klawia- tury sprawdza, czy tworzą one trójkĊ pitagorejską. W teorii liczb trójka pitagorejska to takie trzy liczby caäkowite dodatnie a, b, c, które speäniajñ równanie Pitagorasa: a2 + b2 = c2. Rozdziaä 2. i Instrukcje sterujñce przebiegiem programu — instrukcje wyboru 19 Listing 2.1. Przykáadowe rozwiązanie using System; namespace Zadanie21 // Zadanie 2.1 { class Program { static void Main(string[] args) { int a, b, c; Console.WriteLine( Program sprawdza, czy wczytane liczby a, b, c to trójka pitagorejska. ); Console.WriteLine( Podaj a. ); a = int.Parse(Console.ReadLine()); Console.WriteLine( Podaj b. ); b = int.Parse(Console.ReadLine()); Console.WriteLine( Podaj c. ); c = int.Parse(Console.ReadLine()); if ((a*a + b*b) == c*c) { Console.Write( Liczby ); Console.Write( a = + a + , ); Console.Write( b = + b + , ); Console.Write( c = + c); Console.Write( sæ trójkæ pitagorejskæ. ); } else { Console.Write( Liczby ); Console.Write( a = + a + , ); Console.Write( b = + b + , ); Console.Write( c = + c); Console.Write( nie sæ trójkæ pitagorejskæ. ); } Console.Read(); // naciĞnij klawisz Enter } } } Sprawdzenie twierdzenia Pitagorasa dla wczytanych liczb a, b, c zostaáo zawarte w na- stĊpujących linijkach kodu: if ((a*a + b*b) == c*c) { Console.Write( Liczby ); Console.Write( a = + a + , ); Console.Write( b = + b + , ); Console.Write( c = + c); Console.Write( sæ trójkæ pitagorejskæ. ); } else { Console.Write( Liczby ); 20 C#. Zadania z programowania z przykäadowymi rozwiñzaniami Console.Write( a = + a + , ); Console.Write( b = + b + , ); Console.Write( c = + c); Console.Write( nie sæ trójkæ pitagorejskæ. ); } àatwo sprawdziü, Īe liczby a = 3, b = 4, c = 5 tworzą trójkĊ pitagorejską (liczby te speániają twierdzenie Pitagorasa) i na ekranie pojawi siĊ komunikat: Liczby... są trój- ką pitagorejską, natomiast liczby a = 1, b = 2, c = 3 nie tworzą trójki pitagorejskiej (liczby te nie speániają twierdzenia Pitagorasa) i na ekranie pojawi siĊ komunikat: Licz- by... nie są trójką pitagorejską. Rezultat dziaáania programu dla a = 9, b = 12, c = 15 moĪna zobaczyü na rysunku 2.1. Program sprawdza, czy wczytane liczby a, b, c to trójka pitagorejska. Podaj a. 9 Podaj b. 12 Podaj c. 15 Liczby a = 9, b = 12, c = 15 sæ trójkæ pitagorejskæ. Rysunek 2.1. Efekt dziaáania programu Zadanie 2.1 Zadanie 2.2. Napisz program, który z wykorzystaniem instrukcji if oblicza pierwiastki równania kwadratowego ax2+bx+c = 0, w którym zmienne a, b, c to liczby rzeczywiste wprowadzane z klawiatury. Wszystkie zmienne wyĞwietlamy na ekranie z dokáadno- Ğcią do dwóch miejsc po przecinku. Listing 2.2. Przykáadowe rozwiązanie using System; namespace Zadanie22 // Zadanie 2.2 { class Program { static void Main(string[] args) { double a, b, c, delta, x1, x2; Console.WriteLine( Program oblicza pierwiastki równania ax^2+bx+c = 0. ); Console.WriteLine( Podaj a. ); a = double.Parse(Console.ReadLine()); if (a == 0) { Console.WriteLine( Niedozwolona wartoħè wspóđczynnika a. Naciħnij klawisz ENTER. ); } else { Console.WriteLine( Podaj b. ); Rozdziaä 2. i Instrukcje sterujñce przebiegiem programu — instrukcje wyboru 21 b = double.Parse(Console.ReadLine()); Console.WriteLine( Podaj c. ); c = double.Parse(Console.ReadLine()); delta = b*b-4*a*c; if (delta 0) { Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.Write( brak pierwiastków rzeczywistych. ); } else { if (delta == 0) { x1 = -b/(2*a); Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.Write( trójmian ma jeden pierwiastek podwójny x1 = {0:##.##}. , x1); } else { x1 = (-b-Math.Sqrt(delta))/(2*a); x2 = (-b+Math.Sqrt(delta))/(2*a); Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.WriteLine( trójmian ma dwa pierwiastki: x1 = {0:##.##}, x2 = {1:##.##}. , x1, x2); } } } Console.Read(); // naciĞnij klawisz Enter } } } W pierwszej czĊĞci programu sprawdzamy, czy wartoĞü wspóáczynnika a jest równa zero. Ilustrują to nastĊpujące linijki kodu: if (a==0) { Console.WriteLine( Niedozwolona wartoħè wspóđczynnika a. Naciħnij klawisz ENTER. ); } 22 C#. Zadania z programowania z przykäadowymi rozwiñzaniami else { ............ } JeĞli wartoĞü wspóáczynnika a = 0, to zostanie wyĞwietlony komunikat: Niedozwolo- na wartoĞü wspóáczynnika a... i program zostanie zakoĔczony. Dla a róĪnego od zera program bĊdzie oczekiwaá na wprowadzenie wartoĞci b i c. Po ich wprowadzeniu zo- stanie obliczona delta wedáug wzoru: delta = b*b-4*a*c; JeĞli delta 0, to zostanie wyĞwietlony komunikat: ...brak pierwiastków rzeczywistych. Dla delta = 0 równanie kwadratowe ma jeden pierwiastek podwójny, który obliczy- my ze wzoru: x1 = -b/(2*a); Dla delta 0 równanie kwadratowe ma dwa pierwiastki, które obliczymy ze wzorów: x1 = (-b-Math.Sqrt(delta))/(2*a); x2 = (-b+Math.Sqrt(delta))/(2*a); Dla np. a = 1, b = 5, c = 4 wartoĞci pierwiastków równania wynoszą odpowiednio: x1 = -4 i x2 = -1. Dla np. a = 1, b = 4, c = 4 trójmian ma jeden pierwiastek podwójny: x1 = -2. Dla np. a = 1, b = 2, c = 3 trójmian nie ma pierwiastków rzeczywistych. Rezultat dziaáania programu dla a = 1, b = 5, c = 4 moĪna zobaczyü na rysunku 2.2. Program oblicza pierwiastki równania ax^2+bx+c = 0. Podaj a. 1 Podaj b. 5 Podaj c. 4 Dla a = 1, b = 5, c = 4 trójmian ma dwa pierwiastki: x1 = -4, x2 = -1. Rysunek 2.2. Efekt dziaáania programu Zadanie 2.2 Zadanie 2.3. Napisz program, który z wykorzystaniem instrukcji switch oblicza pier- wiastki równania kwadratowego ax2+bx+c = 0, w którym zmienne a, b, c to liczby rze- czywiste wprowadzane z klawiatury. Wszystkie zmienne wyĞwietlamy z dokáadnoĞcią do dwóch miejsc po przecinku. NaleĔy wprowadziè do programu zmiennñ pomocniczñ liczba_pierwiastkow. Rozdziaä 2. i Instrukcje sterujñce przebiegiem programu — instrukcje wyboru 23 Listing 2.3. Przykáadowe rozwiązanie using System; namespace Zadanie23 // Zadanie 2.3 { class Program { static void Main(string[] args) { double a, b, c, delta, x1, x2; byte liczba_pierwiastkow = 0; Console.WriteLine( Program oblicza pierwiastki równania ax^2+bx+c = 0. ); Console.WriteLine( Podaj a. ); a = double.Parse(Console.ReadLine()); if (a == 0) { Console.WriteLine( Niedozwolona wartoħè wspóđczynnika a. Naciħnij klawisz ENTER. ); } else { Console.WriteLine( Podaj b. ); b = double.Parse(Console.ReadLine()); Console.WriteLine( Podaj c. ); c = double.Parse(Console.ReadLine()); delta = b*b-4*a*c; if (delta 0) liczba_pierwiastkow = 0; if (delta == 0) liczba_pierwiastkow = 1; if (delta 0) liczba_pierwiastkow = 2; switch (liczba_pierwiastkow) { case 0: { Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.Write( brak pierwiastków rzeczywistych. ); } break; case 1: { x1 = -b/(2*a); Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.Write( trójmian ma jeden pierwiastek podwójny x1 = {0: ##.##}. , x1); 24 C#. Zadania z programowania z przykäadowymi rozwiñzaniami } break; case 2: { x1 = (-b-Math.Sqrt(delta))/(2*a); x2 = (-b+Math.Sqrt(delta))/(2*a); Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0}, , a); Console.Write( b = {0}, , b); Console.Write( c = {0} , c); Console.Write( trójmian ma dwa pierwiastki x1 = {0: ##.##} i , x1); Console.Write( x2 = {0: ##.##}. , x2); } break; } } Console.Read(); // naciĞnij klawisz Enter } } } Zmienna pomocnicza liczba_pierwiastkow przyjmuje trzy wartoĞci w zaleĪnoĞci od znaku zmiennej delta. Ilustrują to nastĊpujące linijki kodu: if (delta 0) liczba_pierwiastkow = 0; if (delta == 0) liczba_pierwiastkow = 1; if (delta 0) liczba_pierwiastkow = 2; Rezultat dziaáania programu dla a = 1, b = 4, c = 4 moĪna zobaczyü na rysunku 2.3. Program oblicza pierwiastki równania ax^2+bx+c = 0. Podaj a. 1 Podaj b. 4 Podaj c. 4 Dla a = 1, b = 4, c = 4 trójmian ma jeden pierwiastek podwójny x1 = - 2. Rysunek 2.3. Efekt dziaáania programu Zadanie 2.3 Zadanie 2.4. Napisz program, który oblicza wartoĞü niewiadomej x z równania ax+b = c. WartoĞci a, b, c naleĪą do zbioru liczb rzeczywistych i są wprowadzane z klawia- tury. Dodatkowo naleĪy zabezpieczyü program na wypadek sytuacji, kiedy wprowadzo- na wartoĞü a = 0. Wszystkie zmienne wyĞwietlamy z dokáadnoĞcią do dwóch miejsc po przecinku. Listing 2.4. Przykáadowe rozwiązanie using System; namespace Zadanie24 // Zadanie 2.4 Rozdziaä 2. i Instrukcje sterujñce przebiegiem programu — instrukcje wyboru 25 { class Program { static void Main(string[] args) { double a, b, c, x; Console.WriteLine( Program oblicza wartoħè x z równania liniowego ax+b = 0. ); Console.WriteLine( Podaj a. ); a = double.Parse(Console.ReadLine()); if (a == 0) { Console.WriteLine( Niedozwolona wartoħè wspóđczynnika a. Naciħnij klawisz ENTER. ); } else { Console.WriteLine( Podaj b. ); b = double.Parse(Console.ReadLine()); Console.WriteLine( Podaj c. ); c = double.Parse(Console.ReadLine()); x = (c-b)/a; Console.WriteLine(); Console.Write( Dla ); Console.Write( a = {0:##.##}, , a); Console.Write( b = {0:##.##}, , b); Console.Write( c = {0:##.##} , c); Console.Write( wartoħè x = {0:##.##}. , x); } Console.Read(); // naciĞnij klawisz Enter } } } Rezultat dziaáania programu moĪna zobaczyü na rysunku 2.4. Program oblicza wartoħè x z równania liniowego ax+b = 0. Podaj a. 1 Podaj b. 6 Podaj c. 2 Dla a = 1, b = 6, c = 2 wartoħè x = - 4. Rysunek 2.4. Efekt dziaáania programu Zadanie 2.4 Zadanie 2.5. Napisz program, w którym uĪytkownik zgaduje caákowitą liczbĊ losową z przedziaáu od 0 do 9 generowaną przez komputer. 26 C#. Zadania z programowania z przykäadowymi rozwiñzaniami W jözyku C# liczby pseudolosowe generujemy za pomocñ klasy: Random r = new Random(); . Listing 2.5. Przykáadowe rozwiązanie using System; namespace Zadanie25 // Zadanie 2.5 { class Program { static void Main(string[] args) { double losuj_liczbe, zgadnij_liczbe; Console.WriteLine( Program losuje liczbú od 0 do 9. Zgadnij jæ. ); Random r = new Random(); losuj_liczbe = Math.Round(10*(r.NextDouble())); zgadnij_liczbe = double.Parse(Console.ReadLine()); if (zgadnij_liczbe == losuj_liczbe) { Console.WriteLine( Gratulacje! Zgadđeħ liczbú! ); } else { Console.WriteLine( Bardzo mi przykro, ale wylosowana liczba to {0}. , losuj_liczbe); } Console.Read(); // naciĞnij klawisz Enter } } } Funkcja Round() w poniĪszej linijce kodu: losuj_liczbe = Math.Round(10*(r.NextDouble())); umoĪliwia zaokrąglenie liczby zmiennoprzecinkowej do liczby caákowitej. Rezultat dziaáania programu moĪna zobaczyü na rysunku 2.5. Program losuje liczbú od 0 do 9. Zgadnij jæ. 5 Bardzo mi przykro, ale wylosowana liczba to 2. Rysunek 2.5. Efekt dziaáania programu Zadanie 2.5
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

C#. Zadania z programowania z przykładowymi rozwiązaniami
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: