Ćwiczenie 3 - Robert Arsoba

Transkrypt

Ćwiczenie 3 - Robert Arsoba
Podstawy programowania
dr inż. Robert Arsoba
Ćwiczenie 3
Instrukcje warunkowe
Cel ćwiczenia
Celem ćwiczenia jest praktyczne zapoznanie się z zastosowaniem instrukcji warunkowych
oraz wykształcenie umiejętności ich wykorzystania w programach z rozgałęzieniami
tworzonych w języku C. Zakres ćwiczenia obejmuje: instrukcję warunkowa prostą (if),
instrukcję warunkową złożoną (if-else) i instrukcję wyboru (switch).
Przygotowanie się do ćwiczenia
•
•
•
Zapoznać się z wykładem dotyczącym instrukcji warunkowych.
• Zwrócić uwagę na składnię instrukcji if, if-else i switch.
• Przeanalizować opis i przykłady użycia instrukcji zamieszczone w
materiałach do wykładu.
• Powtórzyć zasady tworzenia wyrażeń logicznych pełniących rolę warunków
sprawdzanych instrukcjami if i if-else oraz wyrażeń arytmetycznych,
których wartość sprawdzana jest instrukcją switch.
• Powtórzyć zasady wykorzystania operatorów relacji i operatorów logicznych
służących do tworzenia wyrażeń logicznych.
Zapoznać się z przykładowym programem zamieszczonym w opisie ćwiczenia
(program rozwiązujący równanie kwadratowe).
• Przeanalizować kod źródłowy programu.
• Skompilować i uruchomić program, przetestować jego działanie.
Zrealizować samodzielnie zadania ćwiczeniowe.
• Opracować dla poszczególnych zadań algorytmy w postaci schematów
blokowych.
• Na podstawie algorytmów utworzyć kod źródłowy programów.
Zadania do wykonania
1. Zmodyfikować i rozbudować kod źródłowy przykładowego programu
rozwiązującego równanie kwadratowe w taki sposób, aby program uwzględniał
wszystkie możliwe przypadki wynikające z wprowadzonych przez użytkownika
wartości współczynników a, b, c równania. Uwzględnić następujące przypadki:
• równanie kwadratowe o pierwiastkach rzeczywistych (jak w przykładzie),
• równanie kwadratowe o pierwiastkach zespolonych (delta < 0, należy
obliczyć i wyświetlić na ekranie pierwiastki zespolone),
• równanie liniowe (a = 0, należy obliczyć i wyświetlić rozwiązanie),
• równanie sprzeczne (należy wyświetlić komunikat ”brak rozwiązań”),
• tożsamość (0 = 0, należy wyświetlić komunikat ”toŜsamość”).
Materiały przygotowano w ramach projektu
„Inżynier pilnie poszukiwany”
Strona 1
Podstawy programowania
dr inż. Robert Arsoba
2. Napisać program rozwiązujący układ dwóch równań liniowych z dwoma
niewiadomymi metodą wyznaczników Cramera.
 ax + by = e

cx + dy = f
Uwzględnić trzy przypadki:
• układ oznaczony (obliczyć i wyświetlić jedno rozwiązanie),
• układ nieoznaczony (wyświetlić komunikat ”nieskończenie wiele
rozwiązań”),
• układ sprzeczny (wyświetlić komunikat ”brak rozwiązań”).
3. Napisać program, który wczytuje z klawiatury liczbę punktów w postaci wartości
całkowitej z przedziału od 0 do 10, a następnie wyświetla na ekranie napis, będący
słowną oceną odpowiadającą podanej liczbie punktów. Przyjąć następujące oceny:
mierna (0÷1 pkt.), niedostateczna (2÷3 pkt.), dostateczna (4÷5 pkt.), dobra (6÷7
pkt.), bardzo dobra (8÷9 pkt.), celująca (10 pkt.). Program napisać w dwóch
wersjach: w pierwszej wykorzystać instrukcję wyboru switch, w drugiej ciąg
zagnieżdżonych instrukcji warunkowych if-else.
4. Napisać program wyświetlający na ekranie proste menu umożliwiające wybór figury
geometrycznej. Po wybraniu figury z menu, program powinien zadać pytanie o
parametry opisujące wybraną figurę geometryczną, a następnie na ich podstawie
obliczyć i wyświetlić na ekranie pole powierzchni danej figury. Do obsługi menu
użyć instrukcji wyboru switch. Przykład działania programu:
Pola powierzchni figur geometrycznych:
1 – prostokąt
2 – koło
3 – trójkąt
4 – trapez
5 – koniec programu
Wybierz figurę: 2
Podaj promień koła: 1
Pole koła o promieniu 1 wynosi 3.14
5. Dane jest równanie y = ax+b opisujące prostą. Napisać program wczytujący z
klawiatury współczynniki a i b równania prostej i określający, przez które ćwiartki
układu współrzędnych kartezjańskich przebiega dana prosta.
Wymagana zawartość sprawozdania z ćwiczenia
1. Notatki ze schematami blokowymi algorytmów do zadań.
2. Pliki z kodem źródłowym utworzonych programów.
Zalecane źródła wiedzy
1. B. Kernighan, D. Ritchie: „Język ANSI C”, WNT, Warszawa 2001.
2. I.N. Bronsztejn, K.A. Siemiendiajew: „Matematyka. Poradnik encyklopedyczny”,
PWN, Warszawa 2000.
Materiały przygotowano w ramach projektu
„Inżynier pilnie poszukiwany”
Strona 2
Podstawy programowania
dr inż. Robert Arsoba
Przykładowy program
/*
* Rozwiazywanie rownania kwadratowego
* Robert Arsoba
* 1.12.2009
* Wersja 1.0
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
/* funkcja sqrt
*/
/* funkcje printf, scanf */
/* funkcja system
*/
float a, b, c;
float delta;
float x1, x2;
/* wspolczynniki rownania */
/* wyroznik rownania
*/
/* pierwiastki rzeczywiste */
int main()
{
/* wyczyszczenie ekranu */
system("cls");
printf("Program rozwiazuje rownanie kwadratowe\n");
printf("
postaci: ax^2 + bx + c = 0\n\n");
printf("Podaj wartosci wspolczynnikow:\n");
printf("a = ");
/* wyswietlenie napisu */
scanf("%f", &a);
/* odczyt z klawiatury */
if (a == 0)
/* sprawdzenie, czy rownanie jest kwadratowe */
{
printf("Rownanie nie jest kwadratowe!\n");
system("pause");
return -1;
/* wyjscie z programu */
}
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
delta = b*b-4*a*c;
/* obliczenie wyroznika */
printf("Rozwiazanie: ");
if (delta >= 0)
/* sprawdzenie delty */
{
x1 = (-b+sqrt(delta))/(2*a);
/* obliczenie pierwiastkow */
x2 = (-b-sqrt(delta))/(2*a);
printf("x1 = %.1f, x2 = %.1f\n\n", x1, x2);
/* na ekran */
}
else
printf("brak pierwiastkow rzeczywistych\n\n");
system("pause");
/* zatrzymanie programu */
return 0;
/* wyjscie z programu
*/
}
Materiały przygotowano w ramach projektu
„Inżynier pilnie poszukiwany”
Strona 3

Podobne dokumenty