Aufgabe Rechtwinkliges Dreieck

Hallo, willkommen auf tutorials.de!

Der grundlegende Aufbau des Programms sollte eigentlich klar sein, nichtsdestotrotz:

  1. Eingabe
  2. Werte berechnen
  3. Ausgabe

Zur Eingabe ist zu sagen das erstmal festgestellt werden muß was eingelesen bzw. berechnet werden soll und das dabei die eingelesenen Werte überprüft werden müssen.

Beim Werte berechnen muß man natürlich auch prüfen was man berechnen muß - je nach dem was nicht gegeben ist.

Gruß
 
genau das ist ja mein problem grade wie sag ich dem compiler was berechnet werden muss es gibt ja verschieden möglichkeiten ein der seiten sind schonmal 3 möglichkeiten pythagoras ! oder einen der 2 winkel sind nochmal 2 schätze mit sinus cos und tan mir fehlt einfach die idee wie ich das realisiere. wenn ihr mir evtl einen programmausschnit o.ä liefern könntet wär echt net

gruß
team4s
 
genau das ist ja mein problem grade wie sag ich dem compiler was berechnet werden muss es gibt ja verschieden möglichkeiten ein der seiten sind schonmal 3 möglichkeiten pythagoras ! oder einen der 2 winkel sind nochmal 2 schätze mit sinus cos und tan mir fehlt einfach die idee wie ich das realisiere. wenn ihr mir evtl einen programmausschnit o.ä liefern könntet wär echt net

gruß
team4s

Kann das mal jemand ins Deutsche übesetzen bitte?

Ok, der Witz hat einen tieferen Sinn. Programmieren bedeutet, deine Gedanken zu ordnen und Schritt für Schritt vorzugehen. Das gleiche passiert beim Reden. Man formuliert seine Gedanken in Sätze und versucht mit Hilfe von zusammenhängen Sätzen dann etwas auszusagen.

Du aber formulierst keine Sätze sondern erzeugst eine pure Aneinandereihung von Worten und Gedankenbruchstücken. btw, Sätze enden mit einem Punkt, Nebensätze beginnen mit einem Komma. Absätze wirken Wunder wenn es darum geht seine Gedanken zu ordnen...

Versuch doch mal in einem ersten Schritt das Programm in Worten zu beschreiben. Dazu mußt Du kein C können...
 
Das könnte man ungefähr so machen:
Code:
print "Was ist gegeben?

a) 2 Katheten
b) Kathete und Hypotenuse
c)  Ankathete und Winkel
d) Gegenkathete und Winkel

? > "

antwort = read()

if antwort == "a" then
  print "Kathete 1 = "
  a = read()
  print "Kathete 2 = "
  b = read()
elseif antwort == "b" then
  print "Kathete = "
  a = read()
  print "Hypotenuse = "
  c = read()
elseif antwort == "c" then
  ...
endif

/* Berechnung */
if antwort == "a" then
  c = sqrt(a^2 + b^2)
  alpha = arcsin(b / c)
  beta = arccos(b / c)
  gamma = pi - alpha - beta
elseif antwort == "b" then
  b = sqrt(c^2 - a^2)
  alpha = ...
  beta = ...
  gamma = ...
elseif antwort == "c" then
  ...
endif

Gruß

PS: Bitte beachte den Hinweis in roter Schrift der beim Schreiben jeder Nachricht darüber steht.
 
Danke für eure Hilfe und entschuldigt meine etwas banale Ausdrucksart. Habe den Text in der Eile kurz runtergetippt und nicht wirklich darauf geachtet wie und was überhaupt ich da zusammengeschrieben habe.
 
Hi,

ich würde die einzelnen Teilabschnitte in einem Unterprogramm realisieren(falls ihr das schon durchgemacht habt).
Also:

ein Unterprogramm für 2 Katheten
ein Unterprogramm für Kathete und Hypotenuse
ein Unterprogramm für Ankathete und Winkel
ein Unterprogramm für Gegenkathete und Winkel

und dann im Hauptprogramm ein kleines Menü(mit switch),das dann die Menüpunkte enthält:

(1) 2 Katheten
(2) Kathete und Hypotenuse
(3) Ankathete und Winkel
(4) Gegenkathete und Winkel

mfg Schluchti
 
@Schluchti


Zuerst einmal danke für deine Antwort
Wir haben Unterprogramme noch nicht behandelt und den (switch) leider auch nicht. In der Schule sind wir ledeglich, ich sag mal bei den Basics sprich den Grundlagen wie z.B

double, Int, char, float

#include "stdafx.h"
#include <stdio.h>

printf, scanf,

If und else

und die kleiinigkeiten wie

&&
<=
>=
==
%f
%lf usw

das war aber auch schon fast alles programmieren erst seit 2-3 Monaten und sind nicht wirklich weit gekommen.

habt ihr vlcht eine möglichkeit dieses Programm mit diesen "Basics" zu realisieren.
Ps: Nehmen beim Programmieren immer die Win-32 anwendung (einfaches Projekt)

Gruß Team4s
 
Hi,
ich hab dir hier mal zwei Szenarien ausprogrammiert,versuch mal den angegebenen Quelltext zu verstehen,ist gar nicht so schwer.
Code:
#include<iostream>
#include<math.h> //Include-File -- wird für das Wurzelziehen,und für Sinus/Cosinus verwendet
int main()
{
	
	int auswahl;
	float kathete1,kathete2,ergebnis,hypotenuse; //alle Variablen sind vom Typ float - also Fließkommazahlen
	printf("Was ist gegeben?\n");
	printf("(1)2 Katheten\n(2)Gegenkathete und Hypotenuse\n(3)Ankathete und Winkel\n(4)Gegenkathete und Winkel\n");
	printf("Auswahl:");
	scanf("%d",&auswahl); //Auswahl der verschiedenen Funktionen
	

	if(auswahl==1) //wenn Auswahl eins ist,dann wird das nachfolgende ausgefuehrt
	{
		printf("\nerste Kathete eingeben:");
		scanf("%f",&kathete1);
		printf("\nzweite Kathete eingeben:");
		scanf("%f",&kathete2);
		ergebnis=sqrt(((kathete1)*(kathete1))+((kathete2)*(kathete2))); //sqrt ist die Wurzelfunktion
		printf("Ergebnis:%f\n",ergebnis);		
	}
	if(auswahl==2) //wenn auswahl zwei ist,dann wird das nachfolgende ausgefuehrt
	{
		printf("Gegenkathete eingeben:");
		scanf("%f",&kathete1);
		printf("\nHypotenuse eingeben:");
		scanf("%f",&hypotenuse);
		if((hypotenuse>kathete1) || (kathete1<0) ||(hypotenuse<0)) // wenn Hypotenuse groeßer als Kathete ist,oder kathete kleiner 0,oder hypotenuse<0
		{
			printf("Falsche Eingabe!\n");
			return 0; //beendet das Programm der Wert "0" bedeutet ohne Fehler
		}
		
		ergebnis=asin((kathete1/hypotenuse)); //asin = arcus Sinus
		ergebnis=ergebnis*180/3.1415926535; //Ergegbnis wird ins Gradmaß umgerechnet,siehe Anmerkung von mir *)
		printf("Ergebnis:%f°\n",ergebnis);
	}
}

// *) siehe: http://www.willemer.de/informatik/cpp/mathlib.htm

p.s: Falls du Fragen haben solltest,kannst du sie gerne stellen - sofern ich sie beantworten kann,mach ich das auch.
 
@Schluchti

vielen dank für deine Lösungsvariante allerdings hätt ich da noch ein paar fragen bezüglich des Programms. Wenn ich den Compiler Drüber Laufen Lasse (wollte testen) liefert er mir einen fehler nach dem Ausgabeteil der volgendermaßen Lautet,

-->Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
Fehler beim Ausführen von cl.exe.


und ich komm einfach nicht drauf was er zu bedeuten hat. Ansonsten hab ich dein Programm soweit verstanden bis auf das (include (iostream) )<-- was ist denn das

dank dir
gruß Team4s
 
Zurück