Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Funkcja typu void


powrót

void

Funkcja typu void (odpowiednik procedury w PASCALU) nie zwraca żadnych danych, które można byłoby poddać dalszej obróbce. Funkcja tego typu może wykonywać pewne czynności, ale nie przekazuje informacji zwrotnej. Słowo kluczowe void oznacza "pusty", informuje, że nic nie będzie zwracane.

Wyobraźmy sobie, że tworzymy funkcję, która będzie czyścić ekran. Zauważmy, że oprócz czyszczenia, żadne informacje nie będą zwracane, czyli ten typ jest jak najbardziej trafny.

Weźmy przykład funkcji wyznaczającej ilość cyfr podanej liczby całkowitej. W tym przypadku typ void się nie sprawdzi, ponieważ informacją zwrotną jest ilość cyfr danej liczby.

Przykład 1

Napisz funkcję, która jako argument pobierze znak i powieli go 20 razy.

Rozwiązanie

#include <iostream>
using namespace std;

void powiel(char znak)
{
	for(int i=0; i<20; i++)
		cout<<znak;

	cout<<endl;
}

int main()
{
	char znak;

	cout<<"Podaj znak, który chcesz powielić 20 razy: ";
	cin>>znak;
	
	//wywołanie funkcji powiel(char)
	powiel(znak);

	return 0;
}

Zauważmy, że funcje tego typu wywołujemy wypisując tylko jej nazwę z ewentualnymi argumentami (gdy tych argumentów nie ma, podajemy nazwę wywoływanej funkcji z pustym nawiasem np. powiel()).

Instrukcja return;

Użycie instrukcji return; spowoduje przerwanie wykonywania kolejnych instrukcji funkcji typu void.

Przykład 2

#include <iostream>
using namespace std;

void powiel(char znak)
{
	int i=1;
	for(;;i++)
	{
		cout<<znak;
		if(i==20) 
			return; //wyjscie z funkcji
	}
	cout<<"Ten napis nigdy się nie pojawi na ekranie twojego monitora!";
}

int main()
{
	char znak;

	cout<<"Podaj znak, który chcesz powielić 20 razy: ";
	cin>>znak;
	
	//wywołanie funkcji powiel(char)
	powiel(znak);

	return 0;
}