Zapis pola i obwodu kwadratu na podstawie liczby podanej z klawiatury

0

Treść zadania:
Napisz program, który wczyta z klawiatury liczbę będącą bokiem kwadratu a następnie tylko w
pliku wynik.txt wpisze ile wynosi obwód i pole tego kwadratu. Program powinien zawierać funkcje
czytaj -wczytującą liczbę o nagłówku: double czytaj ( ), funkcje oblicz -obliczającą pole i obwód z zapisaniem wynik do pliku, o nagłówku: void oblicz(double bok). Stworzonych funkcji użyj w programie. Plik nazwij kwadrat.cpp

 #include <iostream>
#include <fstream>
using namespace std;
double czytaj (int n);
void oblicz (int n);

int main() {

	int n;
	
	czytaj(n);
	oblicz(n);

	return 0;
}

void oblicz (int n) {
	int pole;
	pole = n*n;
	int obwod;
	obwod = 4*n;

	ofstream zapis("wynik1.txt");
	zapis<<pole<<obwod;
	
	zapis.close();

}
double czytaj (int n) {
	cout<<"Podaj bok kwadratu: ";
	cin>>n;
}

Nie rozumiem, czemu w pliku wynik1.txt sa dwa zera...
Podpowiedzi?

0
 #include <iostream>
#include <fstream>
using namespace std;

void oblicz (int n);

int main() {

	int n;

	oblicz(n);

	return 0;
}

void oblicz (int n) {
	
	cin>>n;
	int pole;
	pole = n*n;
	int obwod;
	obwod = 4*n;

	ofstream zapis("wynik1.txt");
	zapis<<pole<<" "<<obwod;
	
	zapis.close();

}

Teraz działa bo wiem ze funkcja void oblicz musi "zapamietac" te liczbe n, ale jak zrobic to z funkcja czytaj dalej nie wiem..

0

Święta są, więc znaj dobroć bliźniego. Nie wnikam czy to poprawne względem sztuki koderskiej, ale wyniki daje dość prawidłowe:

#include <iostream>
#include <fstream>
using namespace std;


double czytaj () {
    int n;
    cout<<"Podaj bok kwadratu: ";
    cin>>n;
    return n; //coś ta funkcja chyba powinna zwracać.
}

void oblicz (double n) {
    int pole;
    pole = n*n;
    int obwod;
    obwod = 4*n;
    ofstream zapis("wynik1.txt");
    zapis<<pole<<" "<<obwod; //oddzieliłem, co by ciut czytelniej było.
    zapis.close();

}

int main() {
    double side = czytaj();// co by n nie powtarzać
    oblicz(side);
    return 0;
}
0
Trzeźwy Samiec napisał(a):
> void oblicz (double n) {
>     int pole;
>     pole = n*n;
>     int obwod;
>     obwod = 4*n;
>     ofstream zapis("wynik1.txt");
>     zapis<<pole<<" "<<obwod; //oddzieliłem, co by ciut czytelniej było.
>     zapis.close();
> 
> ```
Można też i tak:
```cpp
> void oblicz (double n) {
>     ofstream zapis("wynik1.txt");
>     zapis<<n*n<<" "<<4*n; //oddzieliłem, co by ciut czytelniej było.
>     zapis.close();
> 
> 

0

Dodatkowo w czytaj() dałbym double n zamiast int n. Użytkownik może wpisać np. 4.5 i oczekiwać poprawnie obliczonego pola.

1 użytkowników online, w tym zalogowanych: 0, gości: 1