zadanie domowe z c#, studia inf. Niemcy

zadanie domowe z c#, studia inf. Niemcy
DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

Witam , kilka tygodni temu zaczalem studia Informatyczne w Niemczech. Jeden z poczatkowych tematow to podstawy programowania w c#, dostalem kilka zadan domowych z ktorymi chcialbym sie z Wami podzielic i w pewnych kwestiach uzyskac od Was odpowiedzi na pytania ( na poczatku pewnie prymitywne , no ale kazdy kiedys zaczyna )
Jedno z tych zadan przedstawie ponizej :
W pewnej drogerii klient kupil w sklepie 4 przedmioty , sprzedawca zapisal ceny na kartce jedna pod druga i zapytal klienta czy ma dodac te ceny czy moze pomnozyc . Klient dla zabawy powiedzial , zeby je pomnozyc . Okazalo sie , ze cena wyszla taka sama jak w przypadku dodawania : 7,11 zl . Pytanie brzmi ile kosztowaly pojedyncze przedmioty .
W ksiazce zwracaja uwage na to , zeby liczyc w groszach oraz zeby nie pisac programu ktory liczy od 1 do 711 groszy bo zajetoby to za duzo czasu .
Prosilbym Was o napisanie odpowiedniego kodu z komentarzami dla begginera :)
Z gory dzieki za pomoc , pozdrawiam .
Ps. Rozwiazanie ze strony z odpowiedziami moge wrzucic na forum dla porownania z waszymi kodami.

T2
  • Rejestracja:ponad 10 lat
  • Ostatnio:8 miesięcy
  • Postów:194
0

Mam gotowy kod ale pokaże go dopiero jak ktoś inny pokaże swój z opisami? Nie lepiej od razu wrzucić kod z odpowiedzi i podjąć próbę jego analizy i przesłać nam tą analizę abyśmy potwierdzili Twój tok rozumowania ?

edytowany 1x, ostatnio: teo215
DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

ok wrzuce go zaraz . nie napisalem tego kodu , to gotowe rozwiazanie z ksiazki . Poki co nie wpadlem nawet na pomysl jak ten kod mialby wygladac i jakie tresci zawierac , zeby rozwiazac problem zadania . Chcialbym zobaczyc inny tok postepowania w tym zadaniu., kogos kto siedzi w tym dluzej i dla kogo takie zadanie to zaden problem :) pozdrawiam

DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

kod z ksiazki

fourfour
Co to za książka? Autor, tytuł, rok wydania?
DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

prosilbym ktoregos z Was o krotka analize tego kodu , badz inne pomysly na napisanie tego zadania . Dzieki !

T2
  • Rejestracja:ponad 10 lat
  • Ostatnio:8 miesięcy
  • Postów:194
4

Piękny przykład, Idealny przyklad jak nie pisać kodu :D
3 zagnieżdżone pętle.
Nic nie mówiące zmienne k, l ,j i, ll. Swoją drogą z początku myślałem że ll to 11.
Używanie goto zamiast zwykłego return.
Zmienianie wartości zmiennych wykorzystywanych w ramach warunków pętli FOR

Leszej jakości kod pisałem jak miałem 10 lat :/

edytowany 3x, ostatnio: teo215
spartanPAGE
Spoko, to niemcy :P
Sarrus
Trzeba jeszcze dodać zahardkodowaną liczbę 711000000
T2
Tak zahardkodowana liczba 711 oraz 711000000 , która jest używana n razy.
NO
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 6 lat
0

Zaciekawił mnie program studiów skoro programowanie zaczyna się od C#.
Najczęściej spotykałem się z takimi programami C, sh => C++, Python => Java, C# itd.

Och. Zobaczyłem kod. Jest okropny. Jaka to książka? Wewnętrzne wydawnictwo, coś jak zeszyty szkoleniowe z przykładami?
Ja bym się tym przykładowym rozwiązaniem w ogóle nie przejmował. Najlepiej zapomnieć i wyrwać stronę by nie siała w mózgowiu spustoszenia.

edytowany 2x, ostatnio: novpet
somekind
Na takim UWr zaczynasz od Prologa i Haskella.
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
1

napisanie gotowego kodu z komentarzami....

A ile placisz? Bo dla mnie to wyglada jak praca

0

z tego co wyglada to tak bede musial zrobic ;) najlepiej kupic chyba jakas polska ksiazke i rozwiazywac te zadania ze studiow po swojemu...
ten kod jes okropny.

0

Polską? W sensie tłumaczoną? Nie. Polecam w j. angielskim, tłumaczenia na polski bywają koszmarne.
C# in nutshell jest ciekawa pozycją. Tu na stronie tez jest kursoksiążka dość obszerna (i po polsku jeśli to duża zaleta dla Ciebie) która na początek można polecić.

0

kolego Fasadin ... Ile place ? moge Ci wyslac 2 czekolady niemieckie i paczke zelkow Haribo skoro tak podchodzisz to sprawy . To nie jest zadne platne zlecenie tylko zapytanie ludzi , ktorzy sie znaja o rade.

Sarrus
  • Rejestracja:prawie 14 lat
  • Ostatnio:2 dni
  • Postów:2512
0

kolego Fasadin ... Ile place ? moge Ci wyslac 2 czekolady niemieckie i paczke zelkow Haribo skoro tak podchodzisz to sprawy . To nie jest zadne platne zlecenie tylko zapytanie ludzi , ktorzy sie znaja o rade.

to

Prosilbym Was o napisanie odpowiedniego kodu z komentarzami dla begginera

nie wygląda jak prośba o radę, ale wnioskuję, że kolega nie doczytał tego postu

prosilbym ktoregos z Was o krotka analize tego kodu , badz inne pomysly na napisanie tego zadania . Dzieki !

DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

no tak , moze zle to sformuowalem . W kazdym razie nie chodzilo mi o jakies platne zlecenie tylko wymiane refleksji na temat tego zadania. Pozdrawiam !

T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
0

W tym rozwiązaniu jest goto......

edytowany 1x, ostatnio: topik92
_naf
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:87
0

Kod został napisany w ten sposób, abyś nie mógł go użyć pomimo iż rozwiązuje problem. Sam pisałeś, że w książce zwracają uwagę na to jak nie pisać programu. Musisz znaleźć 4 liczby (a,b,c,d) takie, że abc*d = 7,11 && a+b+c+d = 7,11. Nie jest to aż takie trudne. Zwłaszcza, że ten przykładowy program powinien zwrócić Ci odpowiedni wynik...

KP
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:1
0

Nie trudne? 711 ma 5 dzielników: 1,3,9,79,237. Moja implementacja c# mówi "nie ma takich liczb" które spełniają powyższe warunki jednocześnie. Coś jest nie tak z tym zadaniem. Chciałbym zobaczyć prawidłowe rozwiązanie, bo nie wiem jak się do tego zabrać nie robiąc rzeźni z pętlami for.

Jestem początkujący (1msc) prosze o wyrozumiałość:)
int k = 0; //wspolczynnik dla rozmiaru tablicy dzielnikow
for(int i=1;i<711;i++)
{
if (711 % i == 0)
k++;
}

        double[] tabA = new double[k];//tablica dzielnikow (mozliwosci na 4 kartach A,B,C,D)
        double[] tabB = new double[k];
        double[] tabC = new double[k];
        double[] tabD = new double[k];
        int roz = 0;
        for (int i = 1; i < 711; i++)
        {
            if (711 % i == 0)
            {
                tabA[roz] = (double)i;
                roz++;
            }
        }
        for (int i = 0; i < k;i++ )
        {
            tabA[i] = tabA[i] *0.1;
        }
            foreach (double s in tabA)
                Console.WriteLine(s);
        Array.Copy(tabA, tabB, tabA.Length);
        Array.Copy(tabA, tabC, tabA.Length);
        Array.Copy(tabA, tabD, tabA.Length);
        
        for(int i=0;i<k;i++)
        {
            for(int j=0;j<k;j++)
            {
                for(int l=0;l<k;l++)
                {
                    for(int m=0;m<k;m++)
                    {
                        if (tabA[i] * tabB[j] * tabC[l] * tabD[m] == 7.11 && (tabA[i] + tabB[j] + tabC[l] + tabD[m]) == 7.11)
                        {
                            Console.WriteLine("Szukane wartosci to {0}, {1}, {2}, {3}", tabA[i], tabB[j], tabC[l], tabD[m]);
                            goto lab;
                        }
                    }
                }
            }
        }
        Console.WriteLine("Nie ma takich liczb");
        lab:
        Console.ReadLine();

Czy jest możliwe wygenerowanie wszystkich 4 czterocyfrowych kombinacji z jednej tablicy z poziomu klasy Array albo korzystając z jakiegoś innego rozwiązania "wbudowanego"? Można jakoś skrócić powyższy kod? I zadam nurtujące pytanie o możliwość deklaracji tablicy bez podawania rozmiaru, wiem że Array jest klasą abstrakcyjną ale może jest jakiś inny sposób?

edytowany 1x, ostatnio: kozanostra_pl
_naf
pokaż swoją implementację. Każdy ma w (!) Twój problem jeżeli nie ma kodu...
FA
nastepne goto...
DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

niestety w moim stopniu wtajemniczenia w c# jeszcze nie odkrylem takich znakow :) ale dzieki za probe podjecia zadania . dalej nie mam innego pomyslu na ten kod a na forum szkoly autorzy zapewniaja mnie , ze ten kod z ksiazki nalezy do najprostszych... pozdrawiam

_naf
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:87
0

@kozanostra_pl, skompilowałeś ten program z obrazka? :)
Wiesz skąd tam było 711.000.000 w ifach?
Nie ma możliwości aby a+b+c+d==abc*d jeżeli są to liczby całkowite i różne od 0.

Możesz próbować używać liczb zmiennoprzecinkowych wtedy a+b+c+d==abc*d może być prawdziwe.

Zrób jedną pętle, sprawdzaj od razu czy suma a, b, c, d =7,11/711 (zależnie od typu zmiennych jakich użyjesz).
Możesz od razu odrzucić przypadki gdzie a/b/c/d < 1,0 (chyba wiesz co się stanie przy mnożeniu 3 zmiennych *0,01/0,99) i gdzie a/b/c/d > 3,56 (jadę pociągiem i nie mogę żadnego PoC ułożyć, ale ufam instynktowi xd jak coś będzie źle jutro poprawię.
Dalej możesz zrobić pętle w petlach ale ilość iteracji będzie wynosić ~256? ch.. wie ale chyba tak :P Spróbujcie coś napisać jutro wieczorem się tym zajmę.

edytowany 1x, ostatnio: _naf
KP
Strasznie zje...lem zakladając podzielność 711. Rzeczywiscie po sprowadzeniu rownania do postaci z liczbami całkowitymi trzeba zbadac dzielniki 711000000:)Podziałam cos jeszcze moze wieczorem bo po mojej robocie to mozna tylko isc spac.
DM
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 4 lata
  • Postów:22
0

mecze sie nad tym ale nie daje za wygrana :) doszedlem do wniosku , ze liczba 711000000 wziela sie z tego , zeby dzielic i dodawac z liczbami calkowitymi . abcd=7,11
Musimy te 4 ceny pomnozyc przez 10² zeby zniknal nam przecinek. Ale jak to w matematyce , po drugiej stronie rownania tez musimy miec odpowiednia liczbe :
a
102 * b102 * c102 * d*102 =
7,11 * 102 *102 *102 *102 = 7,11 * 10^8 = 711000000.

wydaje mi sie ze autorowi zadania chodzilo wlasnie o to

DM
troche mi sie potegi zle napisaly ale kazdy wie , ze chodzi o potege 10² :)
_naf
o to właśnie chodzi. Jeżeli robiłbyś to na liczbach zmiennoprzecinkowych to nie mógłbyś używać if (711000000 % j != 0) continue. W pierwszym poście napisałeś "W książce zwracają uwagę na to , żeby liczyć w groszach oraz żeby nie pisać programu który liczy od 1 do 711 groszy bo zajęło by to za dużo czasu" w groszach liczysz, a żeby nie liczyć od 1 do 711 możesz napisać pierwszą pętlę tak: for (i = 100; i < (711/2); i++), w poście wyżej napisałem dlaczego. Skoro zrozumiałeś zasadę nikt Cię przy sprawdzeniu nie powinien zagiąć z tym zadaniem ;)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)