Webmasterka


C++ pętla for (podstawy)

Posted in C++ - autor: ToMas w dniu Luty 9, 2008
Tags: , ,

Tutorial kieruje do osób które nadal nie mogą posiąść pętli w C++. Myślę że po przeczytaniu i przeanalizowaniu tego tutka zrozumiesz jak funkcjonuje pętla for i w przyszłości wykorzystasz ją w swoich programach.

Działanie programu: podajemy długości boków a i b, a następnie program „rysuje” nam prostokąt o tych wymiarach. Jeżeli jednak podamy ujemne bądź też błędne wartości długości boków to program wygeneruje błąd w postaci tekstu.

…………………………… . . . . .

1. Deklarujemy zmienne:
int a, b, i, j;
a – długość boku a

b – długość boku b

i, j – zmienne do pętli

…………………………… . . . . .

2. Wyświetlamy tekst powitalny lub też krótką instrukcję dotyczącą programu.

cout << "Wprowadz dlugosci bokow a i b prostokata \n" << endl;

\n oraz endl ma takie samo działanie – przeskok do początku nowego wiersza

…………………………… . . . . .

3. Program wyświetli tekst „a = ” a następnie jeśli wpiszemy obok jakąś cyfrę to pobierze ją (cin >> a;)

cout << "a = ";
cin >> a;

…………………………… . . . . .

4. To samo robimy dla boku prostokąta b

cout << "b = ";
cin >> b;

…………………………… . . . . .

5. Dodajemy odstęp aby wszystko nie zlewało się oraz po to aby program wyglądał w miarę estetycznie.

cout << "\n";

…………………………… . . . . .

6. Musimy napisać jeszcze instrukcję warunkową if na wszelki wypadek gdyby jakiś dowcipniś chciał podać ujemne, błędne lub też zbyt duże wartości boków prostokąta (np. -10, 100, :), mama itp.)

if ((a<0) || (b<0) || (a>30) || (b>30) || (1*a!=a) || (1*b!=b)) {
cout << "\nWprowadziles ujemne lub zbyt duze wartosci bokow\n";
} else

|| - jest to operator OR (alternatywa)

!= – jest nierówne (np 1!=2)

Tłumaczenie na polski powyższego skryptu: Jeśli: bok a będzie mniejszy od zera lub bok b będzie mniejszy od zera lub bok a będzie większy od 30 lub bok b będzie większy od 30 lub bok a pomnożony przez 1 nie da wpisanej wartości lub bok b pomnożony przez 1 nie da tej samej wartości to: napisz „Wprowadziles ujemne lub zbyt duze wartosci bokow”.

else – inaczej…

…………………………… . . . . .

7. Pętla

for (i=0; i<a; i++){
for (j=0; j<b; j++){
cout << "#";
}
cout <<"\n";
}

Widzimy tutaj pętle for zawartą w pętli for. Niezły mętlik ale tak naprawdę to bardzo proste. Program najpierw przypisuje i wartość 0 a następnie sprawdza kiedy ma się zatrzymać, a zatrzyma się wtedy gdy i będzie mniejsze od podanej wartości boku a. Następnie pętla zawierająca zmienną j powtórzy ją w linii ciągłej tyle razy na ile długi jest bok b.

Będzie tyle „#” w jednej linii na ile szeroki jest ten prostokąt, a szerokość ta powtórzy się tyle razy na ile wysoki on jest.

Aby wszystko nie było w linii ciągłej niezbędne jest
dodanie odstępu na końcu pętli (cout << „\n”;)

…………………………… . . . . .

8. Cały skrypt programu powinien wyglądać następująco:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a, b, i, j;
cout << "Wprowadz dlugosci bokow a i b prostokata \n" << endl;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "\n";
if ((a<0) || (b<0) || (a>30) || (b>30) || (1*a!=a) || (1*b!=b)) {
cout << "\nWprowadziles ujemne lub zbyt duze wartosci bokow\n";
}else
for (i=0; i<a; i++){
for (j=0; j<b; j++){
cout << "#";
}

cout <<"\n";
}
cout << "\n";
system("PAUSE");
return EXIT_SUCCESS;
}

Ściągnij gotowy program

About these ads

Odpowiedzi: 3 to 'C++ pętla for (podstawy)'

Subscribe to comments with RSS lub TrackBack to 'C++ pętla for (podstawy)'.

  1. hwastu said,

    Dzieki stary dzieki Tobie wkoncu to opanowalem :D Wszystko o petli dla poczatkujacych napisane w przejrzysty sposob w jednym miejsu!! THX

  2. daz said,

    wszystko napisane klarownie, kazdy kolejny krok w pelni wytlumaczony. tak powinno sie pisac tutoriale. dzieki

  3. BoNuS said,

    zajebisty program przydał mi się pozdro i Dzienkówka ……..


Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s


Obserwuj

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.

%d bloggers like this: