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

Zadania z ciągami

Object Storage Arubacloud
0 głosów
2,108 wizyt
pytanie zadane 19 października 2017 w C i C++ przez Moroni98 Nowicjusz (120 p.)
edycja 20 października 2017 przez Moroni98

Witam !

Mam problem z dwoma zadaniami dotyczącymi ciągu geometrycznego i arytmetycznego.

Zad 1. Dane są cztery liczby całkowite. Sprawdź, czy mogą one utworzą ciąg arytmetyczny lub geometryczny (kolejność liczb można zmieniać).

Zad 2. Dane są cztery liczby całkowite. Wypisz wszystkie możliwe ciągi geometryczne 3-elementowe, (kolejność możemy zmieniać).

Liczby są wprowadzane z klawiatury. Rozpisałem sobie wszystkie kombinacje i w obu zadaniach wyszło mi po 12 możliwości (abcd, abdc, acbd ...). Wykonałem zadanie za pomocą dużej ilości instrukcji warunkowych. Moje pytanie wiąże się głównie z tym czy można w tym zadaniu zastosować pętle i w jaki sposób ? 

Moje kody:

Zad 1.     (Tutaj, aby sprawdzić czy można utworzyć ciąg arytmetyczny posortowałem liczby)

Zad 2.

Z góry dziękuje za wszystkie podpowiedzi :)

komentarz 19 października 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

A jakiś wkład własny? Regulamin forum zabrania proszenia i udzielania gotowych odpowiedzi na pytania, więc pytanie powinienem już zamknąć. wink

Proszę więc o podjęcie próby samodzielnego wykonania tych zadań, a w razie konkretnego problemu możesz zapytać, nie ma żadnego problemu.

1 odpowiedź

+2 głosów
odpowiedź 20 października 2017 przez Shiro Stary wyjadacz (10,300 p.)
To może trochę Ciebie naprowadzę.

Zadanie nie jest moim zdaniem trudne zwłaszcza jeżeli umiesz z głowy podać matematyczne warunki, oto i one:

1) Pytają czy mogą, nie pytają jak on będzie wyglądał, a jeżeli mogą to będą dwa (rosnący i malejący)
zakładam że poszczególne liczby siedzą w zmiennych o mało seksownych nazwach a, b, c, d i że są już posortowane nieważne rosnąco lub malejąco.
Jeżeli ciąg jest arytmetyczny to różnice pomiędzy wyrazami muszą być sobie równe:
a-b = b-c = c-d
Jeżeli ciąg jest geometryczny to:

d/c = c/b = b/a

2) Zadanie nie co trudniejsze ze względu na nie pełność zbioru (mamy czterech liczby ale operujemy na trzech nie wiadomo, których i w jakiej kolejności)

Co do kolejności to wystarczy je posortować ciąg geometryczny będzie albo rosnąć albo maleć nie będzie przez chwile rosnąć, a potem maleć (przy założeniach zadania)

Co do nie pełnego zbioru to można to obejść ponieważ możemy założyć że to np a, b, c (po posortowaniu) i zrobić test jak w zadaniu pierwszym, a jeżeli się nie powiedzie będzie trzeba sprawdzić gdzie coś poszło nie tak i czy można tam wrzucić 'liczbę rezerwową' czyli d aby ten błąd zniwelować. Oczywiście musisz zamknąć to w jakąś sensowną pętle aby nie pisać tego z palca i lepiej użyj tablicy czteroelementowej. Spróbuj też napisać ten kod tak aby był łatwo skalowalny tzn. aby łatwo można było go rozszerzyć do np 5 cyfr.

Zadanie mnie na tyle zaciekawiło że zrobię taki programik w wolnej chwili i wrzucę go tutaj na forum, ale tylko jeżeli też jakiś kod wytworzy się u Ciebie.

Powodzenia, Shiro!
komentarz 20 października 2017 przez Moroni98 Nowicjusz (120 p.)
Dziękuje z odpowiedź !

Mówisz tutaj o tym, żeby posortować wprowadzone z klawiatury liczby. Jeśli sprawdzamy czy jest to ciąg arytmetyczny to wydaję mi się to najlepsze rozwiązanie. Jednak w przypadku ciągu geometrycznego nie wiem czy sortowanie się sprawdzi. Co jeśli iloraz ciągu będzie mniejszy od zera ?  Ciąg nie będzie ani rosnący, ani malejący.
komentarz 20 października 2017 przez manjaro Nałogowiec (37,390 p.)
Niestety zadanie pierwsze wcale nie jest takie proste jak się wydaje. Z ciągiem geometrycznym sortowanie nie przechodzi. W nocy myślałem nad tym napisałem szybki krótki program i myślałem że sprawa załatwiona. Ale co jeśli "q" będzie ujemne?
komentarz 20 października 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Sortujesz i sprawdzasz q dla każdych sąsiednich wyrazów?
komentarz 20 października 2017 przez manjaro Nałogowiec (37,390 p.)
Eryk to nie jest poprawne.

Załóżmy masz ciąg geometryczny: 2, -4, 8, -16

Po posortowaniu będziesz miał: -16, -4, 2, 8'

Teraz nie zachodzi zgodność ilorazu sąsiednich wyrazów.
komentarz 20 października 2017 przez Shiro Stary wyjadacz (10,300 p.)
W sumie racja, należało by pozbawić wszystkie liczby znaku, posortować znaleźć iloraz ciągi i potem sprawdzić czy zadziała dla liczb nie pozbawionych znaku iloraz ujemny.

Można też wykryć czy co drugi znak jest ujemny chodź to będzie trudniejsze gdyż nie znamy kolejności.
komentarz 20 października 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Ah, no tak. Mój błąd. wink

komentarz 21 października 2017 przez Moroni98 Nowicjusz (120 p.)

Zadanie, które na pierwszy rzut oka wydaję się proste tak naprawdę takie nie jest laugh

Zostawię je tak jak jest w podanych przeze mnie kodach źródłowych. Chociaż nie wygląda to zbyt dobrze, nie przychodzi mi w tym momencie do głowy inny pomysł na rozwiązanie.

Dziękuje za wszystkie odpowiedzi !

Powiem Wam jeszcze, że to zadanie dostałem na studiach w pierwszym skrypcie na przedmiocie "Podstawy programowania", w którym poznaje się środowisko, instrukcję warunkową oraz pętle laugh

komentarz 21 października 2017 przez manjaro Nałogowiec (37,390 p.)
Możliwe że ktoś nie przemyślał dokładnie tego zadania i nie brał pod uwagę ujemnych wartości q.

Podobne pytania

+1 głos
2 odpowiedzi 884 wizyt
pytanie zadane 22 kwietnia 2017 w Matematyka, fizyka, logika przez niezalogowany
+2 głosów
1 odpowiedź 466 wizyt
pytanie zadane 7 sierpnia 2019 w Algorytmy przez piotrsz109 Stary wyjadacz (13,730 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...