Skocz do zawartości
FlyingDutch

Programowanie w języku C - pytanie kontrolne

Pomocna odpowiedź

Trudno powiedzieć co masz na myśli pisząc "poprawić". Dlaczego extern? i dlaczego te funkcje są definiowane w funkcji main? Myślę, że trzeba funkcje zdefiniować poza main i skoro mają być definiowane w tym samym pliku to extern w deklaracji niepotrzebne. Sama deklaracja musi oczywiście zostać. O to chodziło?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Czytaj dokładnie. Niestety - programowanie w C wymaga umiejętności dokładnego czytania założeń...

Nie chodzi o napisanie innego programu który robi to samo tylko o sprawienie, aby ten się grzecznie skompilował.

BTW sprawdż sobie co w C znaczy słowo extern, bo na razie bredzisz smętniej niż Piekarski na mękach.

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites

Witam

Dołączam do zabawy z bardzo starym pytaniem: (wtedy na uczelni panował ALGOL 60 🙂

Jak zamienić ze sobą wartości 2 zmiennych, bez użycia zmiennej pomocniczej?

czyli na przykład mamy: a=5, b=7 ... czary-mary i w wyniku a=7, b=5

(wskaźniki i przesunięcia bitowe nie wchodzą w rachubę 🙂)

... wygrywa rozwiązanie z najmniejszą ilością instrukcji 🙂

pozdrawiam

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

To ma być w jednej linijce?

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, wojtekizk napisał:

czyli na przykład mamy: a=5, b=7 ... czary-mary

b%=a; // b=2
a+=b; // a=7
b=a-b; // b=5 

// cout<<"a ="<<a<<" b ="<<b;

pewnie da się jakoś inaczej.

Udostępnij ten post


Link to post
Share on other sites

Ja mam dwie linijki:
 

    b = (a += b) - b;
    a -= b;

Ktoś ma w jednej?

@slon - sprawdzałeś to co napisałeś dla innej pary liczb? Bo jeśli to ma działać tylko dla pary (5, 7) prościej by było:

a=7; b=5;

i po krzyku...

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Jak zawsze masz rację 🙂 

Udostępnij ten post


Link to post
Share on other sites

dla dowolnych liczb:

b=a+b; 

a=b-a;

b=b-a;

Pozdrawiam

dla ciekawości zadanie dla uczniów 2 klasy szkoły powszechnej w zaborze austryjackim z 1907 roku: 

Jedna cegła waży 2 kg. i pół cegły.  Ile kg. ważą 3 cegły?

... liczy się czas po którym podacie poprawną odpowiedź, proszę nie oszukiwać ,liczą się tylko szczere wypowiedzi 🙂

Z szacunku dla historii nauczania proszę nie sięgać po kalkulatory, równania itp. Tylko głowa i własna wyobraźnia....

Potem opiszę genezę w jaki sposób ówcześni uczniowie radzili sobie z takimi zadaniami w jakieś 15 sekund 🙂

Pozdrawiam 

 

Udostępnij ten post


Link to post
Share on other sites
51 minut temu, wojtekizk napisał:

dla dowolnych liczb:

Hm... nie jest to przypadkiem dokładnie to samo co wcześniej napisałem? Chciałeś z najmniejszą ilością instrukcji...

Udostępnij ten post


Link to post
Share on other sites

Kto odpowie na pytanie

Jaki mamy rok ? (nie chodzi o 2019). Odpowiedź zapisz w 3 linijkach (może być mniej lub więcej).

Udostępnij ten post


Link to post
Share on other sites

To zadanie nie jest może akurat w temacie programowania.... ale uczy pokory i pełen szacun dla dydaktyki... czekam na odpowiedź 🙂

 

Udostępnij ten post


Link to post
Share on other sites

A ja proponowałbym powrót do tematu, a o przepisywaniu Lilavati załóżcie sobie inny wątek.

Udostępnij ten post


Link to post
Share on other sites
Dnia 2.09.2019 o 18:25, ethanak napisał:

BTW sprawdż sobie co w C znaczy słowo extern, bo na razie bredzisz smętniej niż Piekarski na mękach.

lol

Nie mam bladego pojęcia o co Ci może chodzić, racz więc łaskawie wyjaśnić. Wg. mojej wiedzy słowo extern ma zastosowanie jedynie do zmiennych podczas ich deklarowania w sytuacji kiedy zmienne te są definiowane w innej jednostce kompilacji niż ta w której się do nich odwołuje. W przypadku funkcji nie ma żadnego znaczenia i jest zwyczajnie ignorowane podczas kompilacji. Ale być może wiedzę mam niepełną tak więc jeszcze raz proszę o wyjaśnienie tejże zawiłej kwestii.

Udostępnij ten post


Link to post
Share on other sites

No to czego się do tego externa doczepiłeś? Przecież jak to wywalisz to program się i tak nie skompiluje, prawda?

Nie mów, że jedyną możliwością jest rezygnacja z zagnieżdżenia funkcji bo to nie wchodzi w grę (z założenia mają być zagnieżdżone).

Udostępnij ten post


Link to post
Share on other sites

Takie głupie pytanie - gdzie w standardzie ANSI C opisane są zagnieżdżone funkcje? Bo rozumiem że mówimy o standardowym C, a nie o rozszerzeniach jakiegoś konkretnego kompilatora.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...