3 Änfangeraufgaben
-
Hallo Leute,
bin neu hier im Forum und habe folgendes Problem. Muss für mein Studium an einem "freiwiliigen" C-Kurs teilnehmen. Der hat mit meinem Studium eigentlich nichts zu tun und deshalb ist mein Ergeiz auch nicht sonderlich hoch. Deshalb wollte ich euch fragen, ob ihr mir vielleicht helfen könntet.
In den folgenden Aufgaben sind nur die Fragezeichen durch die Lsg. zu ersetzen.
Ich weiß, dass es vom Lerneffekt nicht sonderlich viel bringt, eine fertige Lsg. zu bekommen. Doch ich habe z.Z. wichtige Klausuren vor mir und kann mich nicht wirklich damit beschäftigen.
Also, wer lust hat mir zu helfen hier schon mal ein großes Dankeschön!Aufgabe 1
Programm vzeiger (C-Kurs, Serie 7, Aufgabe 1)Stoff: bis Kap. 6.4
Lösungsdateien: vzeiger.c
gcc-Aufruf: gcc -o vzeiger vzeiger.cProgramm vzeiger ist eine Übung für den Zusammenhang zwischen Zeigern und Vektoren.
Gehen Sie von folgendem Programm aus:
#include <stdio.h>
main() {
int bas[4] = {11, 22, 33, 44};
int i;
int *vek = ???; /*EINSETZEN: Zeiger auf bas-Komponente*/
/*Die Komponente muss so gewählt werden,*/
/*dass die zweite for-Schleife dieselben*/
/*Vektorkomponenten anspricht wie die erste*//*Die beiden folgenden Schleifen sollen die gleichen*/
/*Vektorkomponenten ansprechen */for (i = 0; i < 4; i++) /*Zählung beginnt mit 0*/
printf("%d ", bas[i]);
puts("");for (i = 1; i <= 4; i++) /*Zählung beginnt mit 1*/
printf("%d ", ???); /*EINSETZEN: Vektorausdruck mit vek*/
puts("");
}Das Programm enthält zwei Leerstellen (???), die noch eingesetzt werden müssen. Genaueres entnehmen Sie den Programmkommentaren.
Für die erste ???-Stelle gibt es mehr als eine Möglichkeit. Die Lösung für die zweite ???-Stelle hingegen ist (aufgrund des Kommentars) eindeutig.
Das Programm sollte schließlich ausgeben:
11 22 33 44
11 22 33 44Aufgabe 2
Programm szeiger (C-Kurs, Serie 7, Aufgabe 2)Stoff: bis Kap. 6.4
Lösungsdateien: szeiger.c
gcc-Aufruf: gcc -o szeiger szeiger.cProgramm szeiger ist eine Übung für den Zusammenhang zwischen Zeigern und Strings.
Gehen Sie von folgendem Programm aus:
#include <stdio.h>
main() {
char hw[11] = "Hallo Welt";char *hallo = ???; /*EINSETZEN: Zeiger auf 'H' in hw*/
char *welt = ???; /*EINSETZEN: Zeiger auf 'W' in hw*/puts(hw);
??? = 0; /*EINSETZEN: hallo-Ausdruck für ' ' in hw*/
puts(hallo);
puts(welt);
puts(hw);
}Das Programm soll ausgeben:
Hallo Welt
Hallo
Welt
HalloVersuchen Sie in einem Kommentar (im Kopf des Programms) kurz zu erklären, wieso bei der letzten Ausgabe von hw nur noch Hallo herauskommt.
Aufgabe 3
Programm structzeiger (C-Kurs, Serie 7, Aufgabe 3)Stoff: bis Kap. 6.5
Lösungsdateien: structzeiger.c
gcc-Aufruf: gcc -o structzeiger structzeiger.cProgramm structzeiger ist eine Übung für den Zusammenhang zwischen Zeigern und Strukturen.
Gehen Sie von folgendem Programm aus:
#include <stdio.h>
struct Person {char name[20]; int alter;};
#define FORMAT ??? /*EINSETZEN: Geeignetes Format für printf*/
main() {
struct Person *px, p1 = {"Hans", 15}, p2 = {"Rike", 7};printf(FORMAT, p1.name, p1.alter);
printf(FORMAT, p2.name, p2.alter);++p2.alter; /*Rike wird 1 Jahr älter*/
printf(FORMAT, ???, ???); /*EINSETZEN: Ausdrücke mit p2*/px = ???; /*EINSETZEN: Zeiger auf p1*/
???; /*Hans wird 1 Jahr älter*/
/*EINSETZEN: Ausdruck mit px*/printf(FORMAT, ???, ???); /*EINSETZEN: Ausdrücke mit px*/
px = ???; /*EINSETZEN: Zeiger auf p2*/
printf(FORMAT, ???, ???); /*EINSETZEN: Ausdrücke mit px*/
}Das Programm soll ausgeben:
Hans ist 15
Rike ist 7
Rike ist 8
Hans ist 16
Rike ist 8Vielen,vielen Dank!!!
-
Hallo Biene!
Ein ich-habe-weder-Lust-noch-Zeit ist hier wirklich unangebracht.
Vielleicht solltest Du einfach Deine Kommilitonen fragen und diese Kapazitaeten fuer interessierte Leute offen lassen...
-
Biene83 schrieb:
bin neu hier im Forum und habe folgendes Problem. Muss für mein Studium an einem "freiwiliigen" C-Kurs teilnehmen. Der hat mit meinem Studium eigentlich nichts zu tun und deshalb ist mein Ergeiz auch nicht sonderlich hoch.
freiwillig und kein ehrgeiz, wie passt denn das zusammen? tip: lass den kurs sausen und genieß besser deine freizeit.
-
so eine Frechheit, wir sind kein Hausaufgaben Service.
-
supertux schrieb:
so eine Frechheit, wir sind kein Hausaufgaben Service.
Nee, nur falsches Forum.
Ab nach -> Projekte
, dort 'nen Hunderter anbieten, da wird sich schon jemand finden, der das machen will und vlt. auch noch ein offenes Ohr dafür hat, wie wichtig die Klausuren sind und warum es schon völlig OK ist, sich mit der Programmiererei gar nicht befassen zu wollen.
-
Hi Biene,
das ist nun wirklich unangebracht frech, Dir hier hilfe holen zu wollen, und dabei auch noch zu betonen wie desinterressiert du bist! Einfach unverschämt!
Aber du hast Glück und ich bin selber als motivierter 100% freiwilliger Anfänger hinter neuen Übungsaufgaben her. Wenn ich dir damit dann auch noch helfen, kann... warum nicht? Ich hoffe ich verstehe die Aufgaben richtig!
Wenn mich jemand verbessern kann, dann tuts. Nicht für Biene sondern für mich
Aufgabe 1: initialisiere den Zeiger mit der Adresse von Bas. Ein Array ist eig. auch nur eine Adresse im Speicher. Darum:int *vek = bas
Beim Auslesen, kann mit dem Pointer/Zeiger genauso verfahren werden wie mit dem Array. (zumal beide vom selben Datentyp int sind) Da hier das i aber immer eine Ziffer zu hoch ist muss auch immer eine 1 abgezogen werden: printf ("%d",vek[i-1])
Jetzt bist du dran. Was meinen die mit Vektoren???Aufgabe 2: Wie in Aufgabe eins schon, sind Arrays quasi auch nur Zeiger.
Nur, dass diesmal Array und Zeiger vom Typ char anstatt int sind. Beim erhöhen und erniedrigen(:D), wird darum diesmal in 1Byteschritten gesprungen und nicht in 4Byte schritten, wie bei Int! 1Character=1Byte <-> 1Integerwert=4Byte
Bei den Zeiger muss also fogende zuweisung stehen:char *hallo = hw ; //wahlweise auch &hw[0] char *welt = hw+6; //wahlweise auch &hw[6]
Bei dem einfügen muss stehen:
hw[5]=0 //wahlweise auch welt-1 oder hallo+5
Noch eine Frage: ist das Array hw nicht sinnlos ein byte zu gross?
Aufgabe 3: kann ich so jetzt noch nicht!
Wie gesagt, ich bin selber noch Anfänger!Aber vielleicht kann mir das jetzt auch einer der Anderen erklären, was die wollen?
Ich guck trotzdem auch selber mal weiter, denn ICH will ja nicht dumm und desinterressiert sterben!