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

Jak nauczyć się myśleć logicznie

Object Storage Arubacloud
0 głosów
846 wizyt
pytanie zadane 28 lutego 2022 w Rozwój zawodowy, nauka, praca przez Martita Bywalec (2,500 p.)
zmienione kategorie 28 lutego 2022 przez Comandeer
Jak nauczyć się myślenia logicznego? Nie mogę nauczyć się programowania.
2
komentarz 28 lutego 2022 przez rafal.budzis Szeryf (85,260 p.)
Skąd wniosek że akurat logiczne myślenie jest problemem? Równie dużym problemem jest brak cierpliwości.
komentarz 28 lutego 2022 przez Martita Bywalec (2,500 p.)
Zostałam zdiagnozowana.
komentarz 28 lutego 2022 przez rafal.budzis Szeryf (85,260 p.)
W jaki sposób? Chodzi o to że łatwiej coś polecić gdy pozna się konkretny przykład z jakim masz problem ;)
3
komentarz 28 lutego 2022 przez Comandeer Guru (601,530 p.)
Co to za diagnoza i kto ją wystawił?
komentarz 28 lutego 2022 przez Martita Bywalec (2,500 p.)
Dostałam zadanie z programowania na logiczne myślenie. Na podstawie tego, w jaki sposób próbowałam rozwiązać zadanie, zadawał pytania, podpowiadał, czas, po jakim doszłam do częściowej odpowiedzi stwierdził, że nie umiem myśleć logicznie.

U mnie jest taki problem, że pomimo że znam podstawy, teorie javascript to po otrzymaniu zadania napisz program który ... nie wiem jak napisać ten program. Nie umiem wymyśleć rozwiązania, kroków jak to robić, kojarzyć fakty, bardzo długo trwa zanim skojarze jakiś fakt.
komentarz 28 lutego 2022 przez Martita Bywalec (2,500 p.)

@Comandeer, zdiagnozował mam na myśli dał zadanie z programowania na logiczne myślenie.

1
komentarz 28 lutego 2022 przez j23 Mędrzec (194,920 p.)

@Martita, może po prostu programowanie nie jest dla Ciebie?

komentarz 28 lutego 2022 przez Wiciorny Ekspert (270,170 p.)
własnie  trzeba czasami sobie uzmysłowić, że nie każdy może być programistą i nie jest tak że wszystkiego da sie nauczyć, może na początku, ale potem to droga przez mekkę lub tkwienie tylko w jednym punkcie rozwoju

3 odpowiedzi

+7 głosów
odpowiedź 28 lutego 2022 przez Comandeer Guru (601,530 p.)
Po pierwsze, nie skupiałbym się na tym, że jedna osoba (mentor?) stwierdziła, że nie umiesz myśleć logicznie. To nie jest żadna diagnoza, a opinia jednego człowieka, który raczej nie ma dyplomu z psychologii, by móc takie diagnozy dawać.

Jak sama zresztą zauważyłaś, udzieliłaś częściowej odpowiedzi – a więc to znaczy, że coś kojarzysz. Nie wiem, w jaki sposób przebiega Twoja nauka, ale na ten moment nie widzę nic jakoś bardzo odbiegającego od normy. Każdy na początku ma spore problemy ze złapaniem odpowiedniego sposobu myślenia – nawet mimo znania teorii. Po prostu trzeba siedzieć i próbować z kolejnymi zadaniami. Dopiero po kilku/kilkunastu można zacząć się zastanawiać, czy to faktycznie dla nas.

No i co to jest programistyczne zadania na logiczne myślenie? Bo brzmi jak coś oderwanego od codziennej pracy programisty.
komentarz 28 lutego 2022 przez Martita Bywalec (2,500 p.)
Próbuje nauczyć się programowania od 3 lat bez skutecznie. Dużo osób mówiło mi, że nie umiem myśleć logicznie. Skojarzyłam dopiero po dużej podpowiedzi i po długim czasie ale było dużo podpowiedzi..
komentarz 28 lutego 2022 przez Wiciorny Ekspert (270,170 p.)
to znajdź coś innego, być możę programowanie nie jest dla Ciebie skoro robisz to nie skutecznie 3 lata.
Robiąc to samo, nie oczekuj nagle innego rezultatu spróbuj może grafike, coś innego, inne branżę też są otwarte
+1 głos
odpowiedź 28 lutego 2022 przez SzkolnyAdmin Szeryf (86,360 p.)

"stwierdził, że nie umiem myśleć logicznie"

Bzdura, ściśle nie ma czegoś takiego jak logiczne myślenie, może być rozumowanie zgodne z zasadami logiki. Wracając zaś do programowania i owego feralnego zadania może brak ci praktyki, może nie wiesz, jak rozłożyć zadanie na kroki, może … nie mamy danych. Wrzuć zadanie na forum, to ktoś ci pokaże, jak „logicznie” je rozgryźć.

komentarz 1 marca 2022 przez Martita Bywalec (2,500 p.)
Zadanie napisz program w JavaScript, który sprawdzi, czy napis jest liczbą, czy napis nie jest liczbą. Napisz też w krokach jak to zrobić.

Moje rozumowanie bez użycia programowania:
Jeśli napis ma same liczby, to napis jest liczbą.
Jeśli napis ma same litery, to napis nie jest liczbą.

Moje rozumowanie z użyciem programowania:
Nie wiem jak sprawdzić, czy dany napis jest liczbą.

Kroki:
1. Wprowadź liczbę.
2. ?
komentarz 1 marca 2022 przez Oscar Nałogowiec (29,320 p.)

W programowaniu potrzebne jest nie tyle logiczne myślenie, co ścisłe myślenie, takie gdzie czepamy się każdego słowa. Takie uzupełniające pytanie: Masz prawo jazdy? Egzamin teoretyczny to właśnie tego typu sprawdzenie - dostajesz (trochę głupie) pytania w których liczy się każdy szczegół, każde słówko, każdy przecinek.

Bo widać już w pkt 1., że masz z tym drobny problem - zadanie brzmi:

Zadanie napisz program w JavaScript, który sprawdzi, czy napis jest liczbą, czy napis nie jest liczbą.

A twój algorytm zaczyna się:

1. Wprowadź liczbę.

W zadaniu masz sprawdzić napis, więc dlaczego chcesz by user wprowadził liczbę.

komentarz 1 marca 2022 przez Martita Bywalec (2,500 p.)

Takie uzupełniające pytanie: Masz prawo jazdy?

Nie

W zadaniu masz sprawdzić napis, więc dlaczego chcesz by user wprowadził liczbę.

Najpierw trzeba wprowadzić liczbę, żeby program wiedział jaką liczbę masz sprawdzić.

Wytłumaczysz to zadanie?

komentarz 2 marca 2022 przez Whiskey_Taster Pasjonat (15,610 p.)
Sęk w tym, że - jak sama napisałaś - masz sprawdzić, czy podany napis jest liczbą. Stąd wprowadzasz napis, a nie liczbę. Z mojej strony polecam zacząć odrobinę od matematyki i zadań, by wykształcić co nieco wyłapywanie kontekstu zadania. W ten sposób nauka programowania powinna przychodzić Ci łatwiej.
komentarz 2 marca 2022 przez Martita Bywalec (2,500 p.)
Tak napis pomyliłam się w zapisie..

Jak rozwiązać takie zadanie?
komentarz 2 marca 2022 przez Oscar Nałogowiec (29,320 p.)

Tak naprawdę to masz dwa podejścia

  1. Każdy (praktycznie) język na gotowe funkcje do konwersji napisów na liczby (całkowite/zmiennoprzecinkowe) i odwrotnie. W najprostszym podejściu można ich użyć i po prostu sprawdzić czy się udało.
  2. Napisać własną funkcję analizującą dany napis.

W 1. przypadku masz szybko kod, ale nie masz wpływu na jego właściwości - np. czy uwzględnia kropki czy przecinki, a może i jedne i drugie. Co gorsza nawet nie znasz dobrze tych właściwości, używasz gotowej funkcji, wiesz o niej tyle co wyczytałaś, a zwykle nie masz pełnego opisu a tylko taki "na poprawne użycie". W drugim masz więcej pisania, ale pełną konktrole nad kodem i jego cechami.

komentarz 2 marca 2022 przez Martita Bywalec (2,500 p.)

Napisać własną funkcję analizującą dany napis.

Czy mógłbyś opisać to w krokach wraz z kodem, żebym wiedziała, w jaki sposób myśleć, na co zwracać uwagę itp.?

komentarz 19 marca 2022 przez Oscar Nałogowiec (29,320 p.)
edycja 19 marca 2022 przez Oscar

Od razu zaznaczę, że nie znam JS na tyle by pisać w tym kod. Podobnie jak ty mogę się domyśleć co robi jaki fragment w JS, ale napisać własny się nie podejmuje.

 

Główna różnica pomiędzy "myśleniem" człowieka a komputera, jest to, że komputer widzi naraz jedną rzecz. Człowiek spojrzy na napis i już wie, czy to liczba, komputer musi analizować "przez lupę" - naraz widzi jeden znak.

Może to trochę skok na głeboką wodę, ale najlepszą metodą do implementacji tego typu problemów jest tzw maszyna/automat stanów. Polega to na tym, że w jednej zmiennej (może być złożona) pamiętamy co już wiemy - ta zmienna to ów stan, i mamy kawałek kodu, który na podstawie stanu i kolejnego znaku z napisu ustala nowy stan (może być taki sam) - czyli nową wartość zmiennej.

Zawsze musi być jakiś stan początkowy. Koniec może nastąpić w kilku stanach. Pozostałe to stany tymczasowe. Często przejścia pomiędzy stanami można zapisać w postaci tabelki, wtedy kod jest uniwersalny, ale tabelka zwykle jest duża.

Dla uproszczenia możemy zakwalifikować wszystkie znaki do kilku kategorii - w sumie nie interesuje nas czy to literka A czy B - sprawdzamy czy liczba a litery w liczbach nie występują (chyba że dopuszczamy postać wykładniczą typu 1.23E12).

Będą następujące kategorie:

  • wszelkie odstępy czyli tzw białe znaki: spacja, tabulacja, nowa linia itp.
  • cyfry 0 - 9.
  • znak w sensie matematycznym + i -.
  • kropka (lub przecinek zależnie w jakiej "lokalizacji" działamy)

Następnie warto zaplanować jakie będą stany. Jak już wspomniałem od czegoś trzeba zacząć, nazwijmy ten stan START - oznacza on jeszcze nic nie wiadomo.

Drugim oczywistym stanem jest NIELICZBA - oznacza że napis na pewno nie jest liczbą i to zasadniczo koniec, delej nie ma co sprawdzać.

Ponieważ znaki typu + _ . mogą wystąpić raz i tylko w odpowiednich miejscach potrzebne będą stanu "w trakcie analizy". Wystąpienie kropki zmienia liczbę z całkowitej na ułamkową (wymierna z matematycznego punkty widzenia).

Znak plus i minus  może być tylko na początku więc mamy 2 stany PLUS i MINUS

Mamy więc 4 kolejne stany: INTPLUS/INTMINUS - dodatnia/ujemna liczba całkowita oraz FLOATPLUS/FLOATMINUS - dodatnia i ujemna liczba ułamkowa.

Mamy zmienną stan zainicjowaną na START.

Po kolei bierzemy poszczególne znaki napisu i na podstawie zmiennej stan i kategorii znaku wyznaczamy następną wartość zmiennej stan. Można to przedstawić za pomocą tabelki:

Tabela przejść
  odstęp cyfra + - . inne
START START INTPLUS PLUS MINUS FLOATPLUS NIELICZBA
NIELICZBA NIELICZBA NIELICZBA NIELICZBA NIELICZBA NIELICZBA NIELICZBA
PLUS NIELICZBA INTPLUS NIELICZBA NIELICZBA FLOATPLUS NIELICZBA
MINUS NIELICZBA INTMINUS NIELICZBA NIELICZBA FLOATMINUS NIELICZBA
INTPLUS NIELICZBA INTPLUS NIELICZBA NIELICZBA FLOATPLUS NIELICZBA
INTMINUS NIELICZBA INTMINUS NIELICZBA NIELICZBA FLOATMINUS NIELICZBA
FLOATPLUS NIELICZBA FLOATPLUS NIELICZBA NIELICZBA NIELICZBA NIELICZBA
FLOATMINUS NIELICZBA FLOATMINUS NIELICZBA NIELICZBA NIELICZBA NIELICZBA
 

 Kilka wyjaśnień:

Każdy wiersz obrazuje jeden stan wejściowy i zawiera info do jakiego stanu przejść jeśli kolejny znak należy do konkretnej kategorii. Kategorie są kolumnami tabeli.

Zakładam że na początku może być dowolna liczba odstępów, ale już w środku liczby żadnego. Także znaki + - . mogą wystąpić tylko raz.

Wykorzystanie - zmienną stan na START, potem kolejne znaki napisu - określić kategorię i zmienić stan według tabelki. Po przetworzeniu wszystkich znaków (lub przejściu do stanu NIELICZBA) wynik jest gotowy. Określa go osiągnięty stan:

START - w sumie same odstępy, nie było żadnej liczby

NIELICZBA - to nie jest liczba

PLUS MINUS - sam znak brak liczby

INTPLUS - liczba całkowita dodatnia

INTMINUS - jw tyle że ujemna.

FLOATPLUS - liczba z ułamkiem dodatnia (może być np "1.")

FLOATMINUS - liczba z ułamniej ujemna

Cztery ostatnie oznaczają, że to w sumie jest liczba. Można np. zmienić nieco stany, tak by jeśli liczba kończy się odstępem, to dalej już nie ważne, jest to liczba.

Ponieważ treścią zadania było jedynie sprawdzenie czy to jest liczba, zupełnie ignorujemy jej wartość, ale można uzupełnić taki kod o liczenie wartości.

 

 

komentarz 20 marca 2022 przez Martita Bywalec (2,500 p.)
Taki zapis nadal mi nic nie mówi w jaki sposób zrobić to zadanie. Nie wiem jak to zapisać w krokach.

Kroki
1. Wprowadzenie napisu.
2.  Sprawdzenie napisu - tu nie wiem jak program sprawdza.
3. Wyświetlenie wyniku.

Sprawdzenie napisu - tu nie wiem, jak program sprawdza.
Muszę utworzyć zmienne:
zmienna litera = AaBbCcDdEeFfGg.....
zmienna liczba = 123...

Jeśli wprowadzono zmienną litera to wyświetl komunikat To nie jest liczba
Jeśli wprowadzono zmienną liczba i litera to wyświetl komunikat To nie jest liczba
Jeśli wprowadzono zmienną liczba to wyświetl komunikat To jest liczba

Tylko jest więcej liter, cyfr, znaków specjalnych i jak to przedstawić w kodzie? (Pytanie do wszystkich)

Przykład
Wprowadzony napis to A1.
0 głosów
odpowiedź 15 marca 2022 przez ladybug Początkujący (350 p.)

Jeśli przepisujesz kod, np. z jakiegoś podręcznika, to czy jesteś w stanie po jakimś czasie napisać sama chociaż część tego kodu? Masz tak, że sobie myślisz "pamiętam to! / coś mi się kojarzy.." czy nic kompletnie nie pamiętasz i czujesz, że musisz pisać wszystko od zera?

Myślę że mogłabyś spróbować przepisać bardzo krótki program z Youtube albo skądś indziej, taki prosty, na kilka(naście) linijek, a po 1,2 dniach spóbować sama to odtworzyć. Jeśli coś tam będzie w głowie świtać, to dobry znak, a jeśli będziesz miała kompletną pustkę w głowie, to może warto poćwiczyć pamięć albo ainteresować się czymś innym w IT. Trzymam kciuki za dalszą naukęi życzę powodzenia smiley  

komentarz 19 marca 2022 przez Martita Bywalec (2,500 p.)
Tak

Podobne pytania

0 głosów
3 odpowiedzi 369 wizyt
pytanie zadane 31 grudnia 2022 w Offtop przez Iei Obywatel (1,950 p.)
+2 głosów
3 odpowiedzi 2,202 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...