• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Objective-C] C Programmieren Aufgaben 1. Semester

BavariaWars

Erdapfel
Registriert
22.07.21
Beiträge
1
Hi,

Ich bräuchte Mal die Hilfe von Programmierprofis und zwar studiere ich E-Technik und bin durch Informatik 1 durchgefallen.
Ich Versuch Grad die alte Prüfung vollständig zu lösen, aber bei 2 Aufgaben bleib ich leider hängen. Ich kopiere Mal die Angaben hier rein. Wenn jemand nen Lösungsvorschlag zu den beiden Aufgaben hat, gerne her damit 😉


Aufgabe 4:

Implementieren Sie die Funktion Flaeche( ). Beachten Sie, dass keine negativen Felder entstehen dürfen.

#include <stdio.h>
typdef struct punkt
{ int x;
int y;
} Punkt;
//____________________________________________________________
float Flaeche (Punkt D, Punkt E);
// Funktionsprototyp
//________________Hauptprogramm_______________________________
int main (void)
{ Punkt A,B;
A.x = 2 ; A.y = 3;
B.x = 7 ; B.y = 9;
printf (ʺ Punkt A = (%i, %i) \n ʺ, A.x, A.y);
printf (ʺ Punkt B = (%i, %i) \n ʺ, B.x, B.y);
printf (ʺ Die Flaeche des Rechtecks ist: ʺ);
printf (ʺ %i * 2f\n ʺ , Flaeche (A,B));
return (0);
}



Aufgabe 6:

Schreiben Sie eine C – Funktion, welche den Wert der kleineren Zahl von zwei Zahlen in der Argumenten Liste zurückgibt. Wenn beide Zahlen gleich groß sind, soll dieser Wert zurückgegeben werden.
Der Funktionsprototyp dieser Funktion ist:

#include <stdio.h>
#include <stdlib.h>


int min (int a, int b){
if(a>b)
return b;
else return a;
}
int main()
{
int DieKleinste = min(17,33);
printf("%i", DieKleinste);
return 0;
}
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.038
Das ist jetzt nicht dein Ernst, oder? Also weder, dass das Aufgaben von einer Uni oder FH sind, noch dass die paar Zeilen Code, die da nicht stehen, dich vor Probleme stellen. Letzteres glaube ich nur, wenn du wirklich keinerlei Schimmer von C hast, das komplette Semester verpennt hast und auch nach versägter Klausur sorgsam vermieden hast, dich für mehr als 1-2h mit C zu beschäftigen.

Ernsthaft, solche Aufgaben hat mein Sohn in der sechsten Klasse in der Informatik AG.

Aber bevor mir jetzt wieder jemand sagt, schreib' doch nichts, wenn du nicht helfen willst, der einmalige Versuch einer Hilfestellung:

Aufgabe 4: Fläche eines Rechtecks ist a * b, mit a,b den Längen der beiden Seiten. a und b kann man jeweils aus der Differenz der x/y Koordinaten der Punkte berechnen.

Aufgabe 6: Zuerst auf a=b prüfen.
 
  • Like
Reaktionen: Dario von Apfel

Bitnacht

Normande
Registriert
09.06.14
Beiträge
583
Bei Aufgabe 6 steht die Lösung doch schon da, oder nicht?

Bei Aufgabe 4 ist ein Gedankenfehler in der Aufgabenstellung. 2 Punkte haben keine Fläche und sind auch kein Rechteck. Aber wenn wir das mal ignorieren:
{ return 1.0 * ((D.x<E.x) ? E.x-D.x : D.x-E.x) * ((D.y<E.y) ? E.y-D.y : D.y-E.y); }

Schau mal ob der Compiler es mag und ob das Ergebnis stimmt. Jedenfalls sollte das genug Anschwung geben, dass Du eine Lösung findest.

printf (ʺ %i * 2f\n ʺ , Flaeche (A,B));
sieht aber falsch aus.

Besser wäre z.B.
printf (ʺ %4.2f\n ʺ , Flaeche (A,B));
 

Bitnacht

Normande
Registriert
09.06.14
Beiträge
583
Nebenbei:
return (x<y)? x : y;

hat das gleiche Wirkung wie
if (x<y) return x; else return y;

Und:
"%4.2f" ist wie "%f" (also float) bloß mit 4 Stellen vor dem Komma und 2 nach dem Komma.

1.0 ist ein Literal. Literale haben einen impliziten Typ, aber man kann auch explizite Typangaben machen. 4l ist beispielsweise nicht 4 Liter, sondern eine 4 als Datentyp long bzw. long int.
 
Zuletzt bearbeitet: