CLAB 4 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania


Organizacja obliczeń cyklicznych w programie - pętle o nieokreślonej liczbie powtórzeń (instrukcje while i do-while), pętla o określonej liczbie powtórzeń (instrukcja for)

Cele ćwiczenia:

Nowe zagadnienia:

Definicje nowych pojęć do przyswojenia:

0x08 graphic
Instrukcje pętli (iteracyjne, powtarzania, obliczeń cyklicznych) - są to instrukcje pozwalające wykonać daną instrukcję (zwaną instrukcją wewnętrzną pętli) prostą lub złożoną zero lub więcej razy zależnie od spełnienia warunku sterowania pętlą.

Składnia instrukcji while jest następująca:

while (wyrażenie)

{

instrukcja wewnętrzna

}

Wykonywanie instrukcji while przebiega w ten sposób, że najpierw jest obliczana wartość wyrażenia (wyrażenie) i jeżeli ma ono wartość różną od zera (prawda), to jest wykonywana instrukcja wewnętrzna, która może być instrukcją prostą lub złożoną. Instrukcja może nie być nigdy wykonana, jeśli przy pierwszym obliczeniu wyrażenia (wyrażenie) będzie miało wartość zero (fałsz).

0x08 graphic

Składnia instrukcji do while jest następująca:

do

{

instrukcja wewnętrzna

}

while (wyrażenie);

Instrukcja jest wykonywana tak długo, jak długo wartość wyrażenia (wyrażenie) jest różna od zera (prawda) W przypadku, gdy wartość ta będzie równa zeru (fałsz), to wykonywanie instrukcji wewnętrznej do...while kończy się. Wynika stąd, że instrukcja wewnętrzna jest zawsze wykonywana co najmniej jeden raz i to jest podstawowa różnica pomiędzy instrukcjami do...while a while.

manipulatory strumieniowe - umożliwiają wykonanie formatowania strumienia danych np. ustawianie szerokości pola, precyzji liczb, znaków wypełniających pole.

Biblioteka standardowa <iomanip> obsługuje manipulatory strumieniowe.

setw(n) - służy do ustawienia szerokości pola. Argument n to liczba całkowita (int) określająca ilość znaków w polu możliwych do wypełnienia. Np. setw(8).

setprecision(n) - ustala ilość cyfr po kropce dziesiętnej, czyli dokładność liczb zmiennoprzecinkowych (rzeczywistych). Wywołanie tego manipulatora powoduje ustawienie dokładności dla wszystkich kolejnych operacji, aż do następnego wywołania ustalającego dokładność. Argument n to liczba całkowita (int). Np.setprecision(5).

setfill(z) - służy do określania znaku wypełniającego pole. Stosowany przy porządkowaniu pola. Argument z jest typu znakowego. Np. setfill(`*').

setbase(n) - ustala podstawę formatu konwersji. Argument n może przyjąć wartości 0, 8, 10, 16.

Np. setbase(16) oznacza konwersję na system szesnastkowy.

setbase(8) oznacza konwersję na system ósemkowy.

setbase(10) oznacza konwersję na system dziesiętny.

setbase(0) oznacza konwersję na system domyślny.

lub bezpośrednio można użyć manipulatorów

dec - włącza konwersję dziesiętną.

hex - włącza konwersję szesnastkową.

oct - włącza konwersję ósemkową.

Zadanie 1

Napisz program do obliczania i wyprowadzenia na ekran w pewnym porządku, z ustaloną precyzją następujących wyrażeń: a=n-i, b=i/n, gdzie n jest podaną z klawiatury ilością iteracji a i jest kolejnym numerem iteracji. Wykorzystaj manipulatory strumienia do formatowania wydruku na ekranie dla kolejnych iteracji.

0x08 graphic

0x01 graphic

Zadanie 2

Napisz program do zadania 1 stosując pętle do-while

0x08 graphic

0x01 graphic

Z pętli for korzystamy wtedy, kiedy znamy liczbę powtórzeń, które chcemy wykonać.

0x08 graphic

Składnia instrukcji for jest następująca:

for (w-i; w-w; w-z)

{

instrukcja wewnętrzna

}

w-i - wyrażenie-inicjujące: powoduje zainicjowanie licznika pętli

w-w - wyrażenie-warunkowe: jeśli jest niezerowe (prawda) wykonywana jest instrukcja pętli

w-z - wyrażenie-zmieniające: powoduje zwiększenie lub zmniejszenie liczników pętli.

Instrukcja for jest wykonywana tak długo, jak długo wartość wyrażenia-warunkowego jest różna od zera (prawda). W przypadku, gdy wartość ta osiągnie zero (fałsz), to wykonywanie instrukcji wewnętrznej pętli for kończy się.

Operatory zwiększania.

W celu prawidłowego przebiegu pętli konieczne jest wyrażenie-zmieniające, które określa krok z jakim zmienia się zmienna sterująca np. i= i + 1.

Język C++ dopuszcza pewne formy skróconego zapisu dla wyrażeń zmieniających:

Inkrementacja:

i = i +1 i + = 1 i++

Dekrementacja:

i = i -1 i - = 1 i--

Krok pętli może być różny od 1 np. i+=5 oraz może być również ułamkowy np. i+=0.1

Operatory przypisania

Język C++ dopuszcza pewne skrótowe formy zapisu pewnych wyrażeń arytmetycznych np.:

OPERATOR

ZASTOSOWANIE

ZNACZENIE

=

a=b

a=b

+=

a+=b

a=a+b

-=

a-=b

a=a-b

*=

a*=b

a=a*b

/=

a/=b

a=a/b

Zadanie 3

Napisz program wyświetlający na ekranie kolejne liczby naturalne od jeden do wartości podanej z klawiatury.

#include<cstdlib>

#include<iostream>

using namespace std;

main()

{

int i,n;

cout<<"Podaj ile wyświetlić liczb ";

cin>>n;

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

{

cout<<"i = "<<i<<endl;

}

system (“pause”);

return 0;

}

Zadanie4

Napisz program do zamiany dziesiętnej liczby n na system szesnastkowy i ósemkowy

#include <iostream>

#include <iomanip>

using namespace std;

main()

{

int n;

cout<<"wprowadz liczbe dziesietna \n";

cin>>n;

cout<<n<<" to szesnastkowo: "<<hex<<n<<endl;

cout<< " to osemkowo: "<<setbase(8)<<n<<endl;

system("pause");

return 0;

}

Zadania C++ - 4

  1. Napisz program obliczający kwadraty i sześciany dowolnej ilości liczb. Program ma kończyć działanie po podaniu z klawiatury liczby 0 nie realizując dla niej obliczeń.

  2. Napisz program obliczający wartości funkcji sin(x), cos(x), tg(x), ctg(x) dla z góry określonej ilości liczb n.

  3. Napisz program obliczający sumę n pierwszych wyrazów ciągu harmonicznego: 0x01 graphic
    dla podanej wartości n.

  4. Napisz program wyznaczający max i min liczbę w niepustym ciągu n liczb podanych z klawiatury.

  5. Napisz program do obliczania sumy i iloczynu liczb całkowitych z przedziału od 1 do 100 podzielnych bez reszty przez 3.

  6. Pracownik dokonuje ważenia x wyprodukowanych detali. Napisz program do krótkiej analizy zbioru x detali. Program ma obliczać max i min wagę detali oraz podać ich średnią wagę.

  7. Klient dokonuje zakupów dysponując określoną sumą pieniędzy. Napisz program do sumowania cen różnych produktów i ich ilości uwzględniający warunek posiadanej przez klienta kwoty pieniędzy.

  8. Napisz program do obliczania ilości liczb rzeczywistych wprowadzonych z klawiatury zakończonych liczbą 999. Liczba 999 jest warunkiem wyjścia z pętli i nie powinna być wliczona do ilości liczb ciągu.

  9. Napisz program do obliczania pierwiastka kwadratowego z liczb od 100 do 300 podzielnych bez reszty przez 25. Wydrukuj wyniki obliczeń w dwóch kolumnach wg następującego schematu:

liczba pierwiastek

100 10.000

125 11.180

  1. Kierowca w ciągu roku tankował samochód n razy. Zawsze zapisywał ilość paliwa i przejechane kilometry. Napisz program obliczający ilość przejechanych kilometrów, ilość zużytego paliwa w ciągu roku oraz średnie spalanie samochodu na 100 km.

  2. Napisz program wyświetlający na ekranie trójkąt równoramienny złożony z cyfr. Wysokość trójkąta (ilość wierszy) jest daną wejściową. Podstawa trójkąta powinna stykać się z lewym brzegiem ekranu

0

111

22222

3333333

  1. Napisz program do wydruku na ekranie liczb od 0 do 15 w systemie dziesiętnym, ósemkowym i szesnastkowym.

  2. Napisz program, realizujący wyświetlanie na ekranie liczb naturalnych od wartości podanej z klawiatury do jeden.

  3. Napisz program, realizujący wyświetlanie na ekranie wszystkich liczb nieparzystych od jeden do wartości podanej z klawiatury.

  4. Napisz program, w którym należy podać określoną ilość liczb, a następnie wprowadzone liczby mają zostać przyporządkowane do odpowiednich przedziałów:
    (liczba<0, 0<=liczba<=50,liczba>51).

  5. Napisz program, który oblicza i wyświetla wartość n!.

  6. Napisz program, który oblicza średnią arytmetyczną z n podanych przez użytkownika liczb.

  7. Napisz program, który oblicza i drukuje wartość pierwiastka kwadratowego z 2 z dokładnością od 1 do 10 miejsc po przecinku w kolejnych liniach.

  8. Napisz program, który z 10 liczb wczytanych z klawiatury znajduje liczbę największa i najmniejszą.

  9. Napisz program obliczający wartość wyrażenia: 0x01 graphic
    dla x i n podanych z klawiatury.

  10. Dla belki przedstawionej na rysunku wyznaczyć jak zmienia się moment gnący w trakcie przemieszczania się obciążenia wzdłuż belki w kolejnych odległościach co 0,5 m.

0x08 graphic

Ćwiczenia laboratoryjne nr 4

„Język Programowania” str. 2

2

Instrukcja wewnętrzna

Instrukcja wewnętrzna

W

T

N

w

N

T

Instrukcja wewnętrzna

( w-i;w-w;w-z)

T

N

#include<cstdlib>

#include<iostream>

#include<cmath>

#include<iomanip>

using namespace std;

int main()

{

int i=0;

float n, a, b;

cout<<”Podaj liczbe iteracji n”<<endl;

cin>>n;

while (i<n)

{

i++;

a=n-i;

b=i/n;

cout<<setw(10)<<setfill(`_')<<a;

cout<<setw(10)<<setprecision(2)<<setfill(`_')<<b;

cout<<setw(10)<<setfill(`_')<<i<<endl;

}

cout<<”KONIEC”<<endl;

system(„pause”);

return 0;

}

#include<cstdlib>

#include<iostream>

#include<cmath>

#include<iomanip>

using namespace std;

main()

{

int i=0;

float n, a, b;

cout<<”Podaj liczbe iteracji n”<<endl;

cin>>n;

do

{

i++;

a=n-i;

b=i/n;

cout<<setw(10)<<setfill('_')<<a;

cout<<setw(10)<<setprecision(2)<<setfill(`_')<<b;

cout<<setw(10)<<setfill(`_')<<i<<endl;

}

while (i<n);

cout<<”KONIEC”<<endl;

system (“pause”);

return 0;

}

10 m

x

F=300 kN



Wyszukiwarka

Podobne podstrony:
CLAB 2 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 8 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
CLAB 1 2009-2010, Tematy ćwiczeń laboratoryjnych z Języka Programowania
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 3 2009-2010, Ćwiczenia laboratoryjne
CLAB 9 2009-2010, Napisz program zwiększający parametry a=1 i b=1 o stałe wartości (np
Plan zajęć 2010,2011, Ćwiczenia laboratoryjne z Chemii ogólnej dla I roku kierunku lekarskiego na r
Łamigłówki liczbowe 2009- 2010 Etap I, ĆWICZENIA OGÓLNOUSPRAWNIAJĄ, Matematyka, Łamigłówki liczbowe
Tematy ćwiczeń laboratoryjnych z Obróbki Ubytkowej, agh, III rok, Technologie obróbki ubytkowej, TOU
tematy ćwiczeń laboratoryjnych fizyka Cwicz 43
tematy ćwiczeń laboratoryjnych fizyka Cwicz 52
CLAB 12 2010-2011, Automatyka i Robotyka, Język programowania
Tematy cwiczen laboratoryjnych, Księgozbiór, Studia, Mechnika Doświadczalna
CLAB 10 2010-2011, Automatyka i Robotyka, Język programowania
CLAB 11 2010-2011, Automatyka i Robotyka, Język programowania

więcej podobnych podstron