• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program, który nic nie robi.

42 Warsaw Coding Academy
0 głosów
1,455 wizyt
pytanie zadane 11 listopada 2016 w C i C++ przez Rafaello Nowicjusz (170 p.)

Znalazłem takie pytanie rekrutacyjne: "Napisz program który będzie się kompilował i nic nie robił." i nie do końca go rozumiem. Pierwsza odpowiedź jaka mi się nasuwa, to program:

#include<iostream>

int main(void)
{
}

. Pojawiają się jednak dwa "ALE":

1) Wydaje się to za proste. ;)

2) Czy rzeczywiście można powiedzieć, że ten program nic nie robi, skoro zwraca wartość 0.

Mam więc pytanie, czy ten program z pustym mainem jest rzeczywiście odpowiedzią na to pytanie, czy powinna ona być inna?

komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Czepialski by powiedział że niepotrzebne iostream dołączane :P
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)

No tak, dałem z przyzwyczajenia ;)

Niech będzie bez iostream- ale dalej  pytanie pozostaje: czy można powiedzieć, że ten program nic nie robi?

komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Teoretycznie nic nie robi, w praktyce zwraca wartość "0"... Sprawdź jakie są odpowiedzi / zapytaj się twórcy pytania bo sam jestem ciekaw.
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
Pytanie znalazłem w zeszycie inżyniera z Motorolli jako przykładowe pytanie rekrutacyjne i też mnie właśnie zaciekawiło, czy jest ono rzeczywiście tak proste, czy podchwytliwe.
1
komentarz 11 listopada 2016 przez jpacanowski VIP (101,940 p.)
komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Fakt, może to być też test na kreatywność, ciekawe.

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
int main()
{

}

 

komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
Czyli zwracanie wartości 0 można uznać, za nic nie robienie?
komentarz 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
Czy ja wiem... To co ja napisałem się kompiluje i dosłownie nic nie robi. Nie zwraca żadnej wartości, nie przypisuje zmiennych, nie alokuje pamięci... i niepotrzebne jest #include <iostream>. Nawet bez tego <iostream> można przypisywać zmienne np. int a = 10 itd.

Jak dla mnie odpowiedzią na pytanie "program co nic nie robi i się kompiluje" to to, co napisałem w odpowiedzi pierwszej.
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
main zwraca zero.
komentarz 11 listopada 2016 przez unknown Nałogowiec (39,560 p.)
Każdy program coś zwraca, więc można uznać, że ten program nic nie robi.
komentarz 11 listopada 2016 przez niezalogowany

@Evelek mylisz się, w przypadku main() i tak jest "doczepiany" return 0, ale trochę rzeczy jest robionych

Dla przykładu, skompilowany exe (defaultowe opcje dla g++) na starcie ma już 58kb, pamięć jest alokowana na argc, argv oraz envp (argumenty, zmienne środowiskowe):

Poniżej widać jak program i tak zwraca 0:

argc= dword ptr  8
argv= dword ptr  0Ch
envp= dword ptr  10h

push    ebp
mov     ebp, esp
and     esp, 0FFFFFFF0h
call    ___main
mov     eax, 0
leave
retn

 

komentarz 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
W takim razie ciężko o program, który nic nie robi, skoro zwykłe int main() i tak zwraca coś i jest alokacja pamięci. Jeszcze może bym określił dokładniej co to znaczy "nic nie robi".
komentarz 11 listopada 2016 przez niezalogowany
Tutaj mamy nieco kłótnię z definicję słowa "program", bo jeżeli chcemy zrobić kod który nic nie robi to możemy po prostu napisać linię w assembly składającą się z NOP ;)

Podobne pytania

+1 głos
1 odpowiedź 375 wizyt
pytanie zadane 1 lipca 2022 w C i C++ przez polandonion Dyskutant (7,630 p.)
0 głosów
3 odpowiedzi 629 wizyt
pytanie zadane 29 grudnia 2020 w C i C++ przez Sabax Nowicjusz (160 p.)
0 głosów
3 odpowiedzi 3,991 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez Marchewka900 Bywalec (2,970 p.)

93,379 zapytań

142,380 odpowiedzi

322,534 komentarzy

62,734 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...