CLAB 4-1 2008-2009, Ćwiczenia laboratoryjne


4. Instrukcje sterujące przebiegiem programu

4.1 Wykorzystanie instrukcji sterujących w pisaniu programów.

Cele ćwiczenia:

Nowe zagadnienia:

Definicje nowych pojęć

Grupa instrukcji sterująca przebiegiem programu (break, continua, goto oraz return) umożliwiają opuszczenie pętli, przeniesienie wykonywania programu w inne miejsce, zakończenie wykonywania i zwrócenie wartości funkcji. Instrukcja return będzie szerzej omówiona przy omawianiu funkcji.

Instrukcja break „przerwij” powoduje opuszczenie aktualnego poziomu pętli lub instrukcji wyboru. Dopuszczalne zastosowanie tylko w tych instrukcjach.

składnia break;

Instrukcja continue „kontynuuj” powoduje przejście do następnej iteracji. Dopuszczalne zastosowanie tylko w instrukcjach iteracyjnych.

składnia continue;

Instrukcja skoku goto „skocz” umożliwia przekazanie sterowania do określonego miejsca wewnątrz aktualnie wykonywanej funkcji (zasada) programu. Etykieta określa miejsce w programie, do którego ma nastąpić skok.

składnia goto etykieta;

goto PROG_1;

ciąg instrukcji;

PROG_1:

{

instrukcje

}

Wydruk na ekranie

Każdemu znakowi wyświetlanemu na ekranie odpowiadają dwa bajty: bajt wartości i bajt atrybutów. Bajt wartości znaku odpowiada wartości wynikającej z aktualnej tablicy znaków np. tablicy ASCII. Bajt atrybutów odpowiada za kolor i ewentualnie migotanie (blink) znaku.

Bajt atrybutów znaku

7

6

5

4

3

2

1

0

migotanie

Kolor tła

jasność

Kolor znaków

Do obsługi atrybutów znaku stosuje się funkcje znajdujące się w bibliotece conio.h, conio.c.

Wybrane funkcje:

ustawienie atrybutu znaku: void textattr (int attr) np. textattr(164);

ustawienie koloru tła znaku: void textbackground (int color) np. textbackground(4);

ustawienie koloru znaku: void textcolor (int color) np. textcolor(BLUE);

Stałe kolorów

stała

wartość c

Kolor

zastosowanie

BLACK

0

czarny

tło i znak

BLUE

1

niebieski

tło i znak

GREEN

2

zielony

tło i znak

CYAN

3

turkusowy

tło i znak

RED

4

czerwony

tło i znak

MAGENTA

5

karmazynowy

tło i znak

BROWN

6

brązowy

tło i znak

LIGHTGRAY

7

jasnoszary

tło i znak

DARKGRAY

8

ciemnoszary

znak

LIGHTBLUE

9

jasnoniebieski

znak

LIGHTGREEN

10

jasnozielony

znak

LIGHTCYAN

11

jasnoturkusowy

znak

LIGHTRED

12

jasnoczerwony

znak

LIGHTMAGENTA

13

jasnokarmazynowy

znak

YELLOW

14

żółty

znak

WHILE

15

biały

znak

BLINK

128

migotanie

znak

Inne funkcje do obsługi trybu tekstowego:

czyszczenie ekranu: void clrscr(void); np. clrscr();

pobieranie znaku z klawiatury: int getch(void); np. getch();

pobieranie znaku z klawiatury i przekazanie go na ekran:

int getche(void); np. getche();

przesunięcie kursora do wybranego miejsca na ekranie

void gotoxy (int x, int y); np. gotoxy (20,30);

umieszczenie tekstu w określonym oknie na ekranie

void puttext (int left, int top, int right, int bottom, *text) np. puttext(2,4,45,20,”Tabela”);

Zadanie 1

Program wyznaczenia iloczynu ciągu liczb całkowitych o określonej długości różnych od zera.

#include <iostream.h>

#include <conio.h>

main()

{

int liczba, iloczyn=1, dlugosc, i, poprawny=1;

cout<<”Podaj dlugosc ciagu liczb”<<endl;

cin>>dlugosc;

cout<<”Podaj liczby”<<endl;

for (i=1; i<=dlugosc; i++)

{

cin>>liczba;

if (liczba==0)

{

poprawny=0;

break;

}

iloczyn*=liczba;

}

if (poprawny)

cout<<”Iloczyn liczb wynosi:”<<iloczyn;

else

cout<<”Blad danych”;

getch();

return 0;

}

Zadanie 2

Napisz program do wyznaczenia iloczynu liczb rzeczywistych większych od zera znajdujących w ciągu liczb o określonej długości.

#include <iostream.h>

#include <conio.h>

main()

{

float liczba, iloczyn=1, dlugosc, i;

cout<<”Podaj dlugosc ciagu liczb”<<endl;

cin>>dlugosc;

cout<<”Podaj liczby”<<endl;

for (i=1; i<=dlugosc; i++)

{

cin>>liczba;

if (liczba<=0)

{

cout<<”Przejdz do kolejnej liczby ciagu”;

continue;

}

iloczyn*=liczba;

}

cout<<”Iloczyn liczb wynosi:”<<iloczyn;

getch();

return(0);

}

Zadanie 3

Program wyznaczenia iloczynu ciągu liczb całkowitych o określonej długości różnych od zera.

#include <iostream.h>

#include <conio.h>

main()

{

int liczba, iloczyn=1, dlugosc, i, blad=0;

cout<<"Podaj dlugosc ciagu liczb"<<endl;

cin>>dlugosc;

cout<<"Podaj liczby"<<endl;

for (i=1; i<=dlugosc; i++)

{

cin>>liczba;

if (liczba==0)

{ blad=1;

goto E1; }

iloczyn*=liczba;

}

cout<<"Iloczyn liczb wynosi:"<<iloczyn;

E1: if (blad)

cout<<"Blad danych";

getch();

return 0;

}

Zadanie 4

Napisz program do wydruku na ekranie imienia ANNA MARIA w 10 różnych kolorach na białym tle.

#include<iostream.h>

#include<conio.c>

main()

{

int i=1;

puttext(30,10,60,10,"Zadanie 4");

textbackground(15);

while(i<=10)

{

gotoxy(30,10+i);

textcolor(i);

cout<<" A N N A M A R I A"<<endl;

i++;

}

getch();

return 0;

}

Zadania 4.1

(do obsługi błędów w programach wykorzystaj instrukcje break lub goto,

do wyprowadzenia wydruków odpowiednie funkcje z biblioteki conio).

  1. Narysuj schemat blokowy i napisz program, który z ciągu 15 liczb całkowitych będzie sumował liczby większe od 10. Wykorzystaj w programie instrukcję continue.

  1. Narysuj schemat blokowy i napisz program badający czy z odcinków a, b i c można zbudować trójkąt i określający typ tego trójkąta (równoboczny, prostokątny, równoramienny, różnoboczny).

  1. Narysuj schemat blokowy i napisz program wyznaczający wartość maksymalną z wprowadzonych z klawiatury 10 liczb rzeczywistych.

  1. Narysuj schemat blokowy i napisz program, który dokonuje dzielenia dwóch liczb podanych przez Ciebie a następnie sprawdza czy wynik dzielenia zawiera się w przedziale 0-1.

  1. Narysuj schemat blokowy i napisz program, który pobiera wartości dla 3 zmiennych i wykonuje: -mnożenie liczby drugiej przez trzecią, gdy liczba pierwsza jest większa od trzeciej i liczba druga jest większa od pierwszej, -dzielenie liczby drugiej przez trzecią, gdy liczba druga jest mniejsza od trzeciej albo mniejsza od pierwszej, -dodawanie wszystkich trzech liczb w przypadku, gdy liczba trzecia jest większa od pierwszej i liczba druga nie jest równa 5 lub liczba druga jest większa od trzeciej oraz liczba pierwsza nie jest równa zero.

  1. Narysuj schemat blokowy i napisz program, który sprawdzi czy jesteś pełnoletni.

  1. Narysuj schemat blokowy i napisz program, który oblicza sumę i długość ciągu liczb wprowadzonych z klawiatury.

  1. Narysuj schemat blokowy i napisz program, który drukuje na ekranie sumowanie co czwartej liczby naturalnej z przedziału a,b.

  1. Narysuj schemat blokowy i napisz program, który sprawdza czy w ciągu liczb występują liczby ujemne i jaki procent stanowią z całego ciągu.

  1. Narysuj schemat blokowy i napisz program, który wczytuje oceny kolejnych uczniów i oblicza procentowy udział poszczególnych ocen (2,3,4,5) w analizowanej klasie.

  1. Narysuj schemat blokowy i napisz program, który w zależności od podanego znaku przeprowadzi podstawowe działania kalkulatora (dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie, obliczanie procentów).

  1. Narysuj schemat blokowy i napisz program, który realizuje drukowanie oceny ucznia w postaci słownej (użytkownik wpisuje ocenę z klawiatury numerycznej).

  1. Narysuj schemat blokowy i napisz program, który realizuje polecenie kierownika sklepu muzycznego „ Jeśli kupisz 3 lub więcej płyt CD to za jedną sztukę zapłacisz o 10 zł taniej”. Normalna cena 1 sztuki wynosi 50 zł. Program ma drukować sumaryczną cenę płyt w zależności od ilości zakupionego towaru.

  1. Narysuj schemat blokowy i napisz program, który testuje wzrost człowieka i przypisuje go do określonej grupy: wysoki, średni, niski, karzeł. Ustalić zakresy grup.

  1. Narysuj schemat blokowy i napisz program, który znajduje rozwiązanie równania ax+b=0, ze sprawdzeniem poprawności wpisania danej a.

  1. Narysuj schemat blokowy i napisz program, który wyświetli na ekranie następującą piramidę (wykorzystaj pętle while oraz manipulator setw).

*

***

*****

*******

Ćwiczenia laboratoryjne nr 4.1

„Język Programowania” str. 5

5



Wyszukiwarka

Podobne podstrony:
CLAB 6-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1-2 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 7-2 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 3-1 2008-2009, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 5-1 2008-2009, 5
CLAB 1-1 2008-2009, Język Programowania (JP)
CLAB 5-2 2008-2009, 5
CLAB 7-1 2008-2009, Napisz program zwiększający parametry a=1 i b=1 o stałe wartości (np
CLAB 2 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 3 2009-2010, Ćwiczenia laboratoryjne
CLAB 8 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 4 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
program cwiczenia 2008 2009 lekarski[1]
Prawo administracyjne - K. Wlaźlak ćwiczenia 4 2008-2009, Prawo administracyjne(30)
Prawo administracyjne - K. Wlaźlak ćwiczenia 2 2008-2009, Prawo administracyjne(30)
Sprawozdanie 4 (powtarzanie), WAT, SEMESTR VII, semestrVII, konopacki, WAT, Ekonometria, Prace semes
Łamigłówki liczbowe 2008 - 2009 - Etap II, ĆWICZENIA OGÓLNOUSPRAWNIAJĄ, Matematyka, Łamigłówki liczb

więcej podobnych podstron