lab11, Ćwiczenia 11 - dokończenie plików tekstwoych + rekurencja


Ćwiczenia 11 - dokończenie plików tekstwoych + rekurencja

Zad.1 Napisz program zapisujący wczytywane liczby z klawiatury do napotkania 0 do pliku i następnie wypisujący je na ekranie.

//---------------------------------------------------------------------------

#include <vcl.h>

#include <iostream.h>

#include <fstream.h>

#include <conio.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

float liczba=1.0;

fstream plik("c:\\liczby.txt",ios::in | ios::out | ios::trunc);

while(true){

cout << "Podaj liczbe: ";

cin >> liczba;

if(liczba!=0) plik << liczba << " ";

else break;

}

plik.close();

plik.open("c:\\liczby.txt");

while(!plik.eof()){

plik>>liczba;

if(!plik.fail()) cout<<liczba<<" "; //ostatnim znakiem jest spacja, wiec eof jest dopiero po spacji

}

plik.close();

cout<<endl;

getch();

return 0;

}

//---------------------------------------------------------------------------

Uwaga:

Funkcja int fail() - funkcja zwraca wartość niezerową np. gdy oczekujemy wartości liczbowej a otrzymamy tekst,

Zad.2

Napisz program, który zapisze n liczb do pliku. Następnie dla każdej liczby zapisze ją i jej cyfry oddzielone spacjami do innego pliku. Drugi plik powinien zostać wypisany na ekranie.

Zad.3

Napisz program obliczający rekurencyjnie silnię. Porównaj z rozwiązaniem dla rozwiązania iteracyjnego.

Rozwiązanie rekurencyjne poniżej, iteracyjne samodzielnie.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

//---------------------------------------------------------------------------

int silnia(int n)

{

if (n==0) return 1;

else return n*silnia(n-1);

}

#pragma argsused

int main(int argc, char* argv[])

{

cout << silnia(5);

getch();

return 0;

}

//---------------------------------------------------------------------------

Zad.4

Napisz program obliczający sumę ciągu n-elemetowego liczb całkowitych z wykorzystaniem rekurencji.

Szkielet rozwiązania rekurencyjnego (samodzielnie program główny):

int suma(int n)

{

int x;

if (n==0) return coś_co_nie_zmienia_sumy;

else

{

wzytaj x;

return x+wywołanie_rekurencyjne_funkcji;

}

}

Zadanie 5. Napisz program obliczający sumę ciągu n-elemetowego liczb całkowitych zapisanych w tablicy z wykorzystaniem rekurencji. Funkcje do wprowadzania danych i wypisywania też są rekurencyjna.

Funkcja do wprowadzania danych:

void wprowadz(int *a, int n)

{

if (n==0)

return;

else

{

cin>>a[n];

wprowadz(a,n-1);

}

}

Zad.6. Napisz program, który dla wektora n-elementowego policzy maksimum i minimum. Funkcje powinny być rekurencyjne.



Wyszukiwarka

Podobne podstrony:
Fizjologia Cwiczenia 11 id 1743 Nieznany
Biologia Cwiczenia 11 id 87709 Nieznany (2)
cwiczenie 11
sprawko z ćwiczenia 11, Farmacja, II rok farmacji, I semstr, fizyczna, Fizyczna, Sprawozdania z fizy
Patomorfologia cwiczenia ,11,11
MIKROEKONOMIA ĆWICZENIA 5 (11 12 2011)
cwiczenie 11 id 125145 Nieznany
Cwiczenie 11 Rozklad naprezen pod fundamentem ( )
cwiczenia 11
Ćwiczenia$ 11 OOŚ
Zachowania organizacyjne ćwiczenia( 11
Fizyka- Sprawdzenie prawa Hooke'a, !Nauka! Studia i nie tylko, Fizyka, Ćwiczenie 11 - moduł Younga
cwiczenie 11, GRUNTOZNASTWO, Gruntoznawstwo, Grunty 2 (mrr mrr)
Ćwiczenia, Instrukcja do ćwiczenia 7, Instrukcja do ćwiczenia 11:
ćwiczenia 11 2011

więcej podobnych podstron