Jump to content
SwitchBlade

Tablica dwuwymiarowa w C i zamiana jednostek

Recommended Posts

Witam;

Napiszę na wstępie, że z programowaniem w C mam spore problemy.

Muszę jednak utworzyć tablicę, w której będzie przelicznik jednostek.

Np. wpisuję daną: 10 KM (KM - uznajmy za fundamentalną jednostkę)

i muszę mieć ten wynik w metrach, w calach, w jardach.

Więc:

10 KM = 10000,00 M | 393700,79 cal. | 10936,13 yd

Tak to powinno mniej więcej wyglądać, ale w C smile_prosty.gif

Korzystam z programu o nazwie "CodeBlocks", bo "Dev Cpp" ma problemy z antywirusem, z Avastem.

Znalazłaby się jakaś dobra dusza, która wytłumaczy (nakieruje), jak to zrobić krok po kroku?

Szukałem w internecie, Jest mowa tylko o tablicach + ew. dodawaniu.

Pozdrawiam,

Bartek.

Edited by SwitchBlade

Share this post


Link to post
Share on other sites

Co do szukania w necie - to znalazłeś?

Z góry uprzedzam, że na gotowy kod nie masz co liczyć. Na forum pomagamy, a nie wyręczamy.

Zakładam, że liczbę kilometrów użytkownik musi podać.

Można w ten sposób:

1) Zapisujemy tę liczbę jako zmienną typu float (można double, jak kto chce większej precyzji). Teoretycznie możnaby tu dać unsigned int, gdyż odległość zawsze będzie dodatnia, ale wtedy ograniczylibyśmy użytkownikowi możliwość wpisania do liczb całkowitych (po polsku - dwa i pół kilometra wtedy nie przeliczy)

2) Tworzymy tablicę o następującej konstrukcji:

typ_zmiennych_w _tablicy nazwa_tablicy [długość_tablicy]* = {kilometry*1000, kilometry/0.0000254 (cale), kilometry/0.0009144 (yardy) }

3)Z wyświetleniem zawartości tablicy powinieneś sobie poradzić.

Na początek najlepiej będzie jak pokażesz co sam do tej pory zrobiłeś.

*nie wiem gdzie tu dwuwymiarowa potrzebna.

Share this post


Link to post
Share on other sites

Jak mamy tylko coś wypisać to niezanadto widzę sens tworzenia tablicy tak w ogóle - możemy wypisywać na bieżąco.

możnaby tu dać unsigned int, gdyż odległość zawsze będzie dodatnia, ale wtedy ograniczylibyśmy użytkownikowi możliwość wpisania do liczb całkowitych

To w sumie jest nieprawda, ani o odległości ani o ograniczeniu.

Edited by Hakken
  • Upvote 1

Share this post


Link to post
Share on other sites
niezanadto widzę sens tworzenia tablicy tak w ogóle

Ale skoro wymagają (co dziwne) to niech im będzie. Pytanie tylko czemu i kto.

10 KM = 10000,00 M

Się pisze km i m. Nie mylmy kilometrów z Koniami Mechanicznymi.

Share this post


Link to post
Share on other sites

Przepraszam. Dopiero wszedłem na laptopa i będę z tym walczył. Etap mojej pracy jest na poziomie "zero".

W przyszłym tygodniu mam z tego zaliczenie, a miałem problemy z komputerem w akademiku, aby kompilować program.

Zwlekałem z tym do ostatniej chwili i obudziłem się z ręką w nocniku.

Tak Mikael - widziałem ten przelicznik jednostek. Dziękuję Wam za odpowiedzi.

I racja - tablica dwuwymiarowa jest zbędna.

Share this post


Link to post
Share on other sites

Kurcze, po kiego stosować jakieś zewnętrzne przeliczniki, skoro wszystko masz na tacy.

Skoro masz, że 10 km to 393700,79 cali, to z proporcji można bardzo prosto wyliczyć ilosć cali dla dowolnej ilości kilometrów i na odwrót.

Masz coś takiego:

10 km - 393700,79 cal

x km - y cal

czyli x km = (10 km * y cal)/(393700,79 cal)

oraz y cal = (393700,79 cal * x km)/(10 km)

Reszta analogicznie.

Tu naprawdę nie ma niczego, co wychodziłoby poza program podstawówki.

Share this post


Link to post
Share on other sites

Tak. Są przeliczniki.

To jest tylko jedno z zadań, które muszę zrobić, aby zaliczyć programowanie.

A problem jest fundamentalny; Za nic w świecie - nie wiem, jak zacząć

Share this post


Link to post
Share on other sites

http://pastebin.com/TFX8P4HU - część programu.

Mam teraz problem z jego kompilowaniem:

""project 2 - Debug": The compiler's setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler.

Probably the toolchain path within the compiler options is not setup correctly?! (Do you have a compiler installed?)

Goto "Settings->Compiler...->Global compiler settings->GNU GCC Compiler->Toolchain executables" and fix the compiler's setup.

Skipping..."

Zrobiłem, jak należało;

Usunąłem DevCpp, przeczyściłem rejestr - i nic

Edited by SwitchBlade

Share this post


Link to post
Share on other sites
Usunąłem DevCpp, przeczyściłem rejestr - i nic

A przypadkiem kompilatora razem z nim nie wywaliłeś?

Zawsze można przeinstalować CodeBlocks (jeden z instalatorów ma dołączony kompilator), zwłaszcza, że jest od kilku dni nowa wersja.

Tak btw, CodeBlocks się burzy o kilka linijek:

np.

void glowna(int *war1,int *war2)

{

(..)

war1 = scaner();

if (war1 == 1 || war1 == 2 || war1 == 3 || war1 == 4 || war1 == 5)

in function 'glowna':

44|warning: assignment makes pointer from integer without a cast

45|warning: comparison between pointer and integer

51|warning: passing argument 1 of 'mini_menu' makes integer from pointer without a cast

Ja sam zaś się dopytam o tablicę - czy czasem taka o wymiarach 4x4 nie powinna się zaczynać od [0][0] i kończyć na [3][3]?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...