11 / 16
Apr 2018

Przetestuj:

1
49 58

Dodatkowo, w poniższym fragmencie, sprawdzenia zakresu powinny zostać wykonane przed dostępem do tablicy, a nie po:

int a= xTab[lx-1] - '0';
int b= yTab[ly-1] - '0';
if (lx-1<0)a=0;
if (ly-1<0)b=0;

Dzięki za pomoc.

Faktycznie słaby miałem pomysł z tym iteratorem do wyniku.

Ta satysfakcja jak się odpali zielone :relieved:

1 year later

Może ktoś mi powiedzieć dlaczego po dodaniu dwóch long double wychodzi zły wynik?

1234567890123456789 12123343456567878909

13357911346691336192

a to kod:

#include “stdafx.h”
#include iostream
#include iomanip

using namespace std;

long double liczba,liczba2,wynik;

int ile_razy;

int main()
{
cin >> ile_razy;

while (ile_razy)
{	
	wynik = {}; 

	 
	cin >> liczba >> liczba2;

	cout << setprecision(1000);

	wynik = liczba + liczba2;

	cout << wynik << endl;
	
   ile_razy--;
}
system("pause");

return 0;

}

w każdym dobrym podręczniku C/C++ na początku jest opis podstawowych typów danych - nie należy tego omijać przy czytaniu :slight_smile:

No to teraz dlaczego nie akceptuje?

#include
#include

using namespace std;

unsigned long long liczba,liczba2,wynik;

int ile_razy;

int main()
{
cin >> ile_razy;

while (ile_razy)
{	
	wynik = 0;
	
	cout << setprecision(1001);

	cin >> liczba >> liczba2;

	wynik = liczba + liczba2;

	cout << wynik << endl;
	
   ile_razy--;
}
system("pause");

return 0;

}

Co to oznacza że imput jest pusty? WTF?

w czasie edycji na ideone.com1 pod okienkiem z programem masz okienko enter input (stdin)
tam należy wstawić dane do przetestowania działania programu

skoro przeczytałeś odpowiedni rozdział podręcznika C/C++ to odpowiedz na pytanie: ile maksymalnie cyfr może mieć dodatnia liczba dla typu long long ?

Jezu poważnie takie mi tu pytania zadajesz? Mam robić tablicę charów i rzutować na inty dodając? Poważnie? Mam maszynę lepszą od tych jakie montowali w Apollo i nie ma sposobu żeby komputer dodał dwie wielkie liczby? Ale to żałosne.

zgadzam się, że twoje narzekania są żałosne.

teraz w każdym telefonie jest lepszy procesor niż w apollo :slight_smile:

a to zadanie nie jest dla komputera, tylko dla ciebie - abyś się czegoś nauczył

nie musisz używać C/C+ - w kilku innych językach programowania można to napisać jako zwykłe dodawanie

Tia jest to możliwe ale nie tylko ja siedzę przed kompem w niedzielę zamiast z rodziną. Różnica jest taka że ja się uczę :).
Udzielasz wymijających odpowiedzi pytałem w skasowanym poście dlaczego nie da się dodać long double do siebe?Nie wystarczyło powiedzieć bo ma 8 bajtów tylko się wywyższać i odsyłać do kogoś innego?

prosze sobie zobaczyć 29minutę odcinka

http://miroslawzelent.pl/kurs-c++/tablice-w-c++/10

logicznie rozumując myślałem że powiększe long double do paru miejsc i po sprawie.

A ja polecam wybierać dobre źródła wiedzy :wink: Bo ten program oczywiście zwraca złe wyniki dla myślę nie tak znowu wielkich n (Uwaga! zabrałem kod i przetestowałem dla wybranych n! Nie wykluczam, że w którejś minucie autor uzasadnia, że napisał błędny program w jakimś celu, np. zademonstrowania nieprawidłowego podejścia do problemu)

Nie wnikam, czy są wymijające. Natomiast long double dodaje się do siebie tak: a + b.

Nie wystarczyło, bo to bzdura. Abstrahując już od sytuacji, gdy bajt nie ma 8 bitów - long double na pewnych architekturach może mieć np 12 bajtów i nawet nie musi mieć nic wspólnego z IEEE 754.

Raczej byś przypomniał sobie matematykę z trzeciej czy drugiej klasy szkoły podstawowej :wink:

Formalnie to nawet w C++ się da, ale oczywiście nie czystym a np boostowanym.

Słusznie myślałeś, bo rzeczywiście w pewnej szczególnej logice takie postępowanie działa. Logika ta doczekała się nawet swojej nazwy - zelentym :slight_smile: Podstawowe cechy zelentyzmu to: 1) logiczne rozumowanie oparte na solidnych podstawach naukowych (rachunek wariacyjny albo chociaż dobra literatura typu botanika Szweykowskich), co doczekać się może nawet naukowej analizy (http://platyna.org/blog/2014/01/04/ciag-fibonacciego-i-zlota-proporcja-w-naturze/11) 2) stawianie na samorozwój metodami wszelakimi, np. “Tia jest to możliwe ale nie tylko ja siedzę przed kompem w niedzielę zamiast z rodziną. Różnica jest taka że ja się uczę :).” (żeby nie było - głęboko wierzę, że ta diagnoza jest przesadzona i specem od slight edgu czy czegoś tam nie jesteś) 3) pozostawianie wszystkiego co ważne w danej chwili na później, bo wiedzę należy budować od podstaw, a kod / film / odcinek / wykład / … / już bardzo się rozrosnął :wink:

Dziękuję za odpowiedź. Teraz wiem czego szukać i gdzie. Zelentym to pewnie nic pochlebnego o mnie :smiley: ale wiem że zasługuję więc przyjmuję z pokorą konstruktywną krytykę. Pozdrawiam.

Eee tam krytykę - sam zaczynałem od Zelenta więc da się żyć :smiley: Byle by wiedzieć kiedy skończyć :wink:

PS na forum jest dział, gdzie są podane przykładowe dobre źródła wiedzy o Cpp, np. książkowe. Gorąco polecam.

Czytam nadal Grębosza Opus c++(jestem na ok 1000str.). Opis prosty podręcznik to raczej jest pod publiczkę. Taka zawiłość kodów i nazw w klasach jest po prostu czasochłonna. Rozumiem że chciał oddać wszystkie możliwe wyjątki ale gubię się w kodach i analiza ich zajmuje po prostu zbyt wiele czasu. Dla przykładu klasy zrozumiałem ale nie potrafiłem ich napisać a w tym odcinku jakiś chłopaczek po prostu pokazał wszystko w prosty sposób.

Każdy mówi że to taka świetna książka na początek a mi się wydaje że nikt nie chce powiedzieć że “…król jest nagi.”

Grębosz pomógł mi tylko dlatego, że dość późno zainteresowałem się IT i przedstawił mi sposób myślenia o kodzie (a nie np. o reakcjach chemicznych, które były mi znane). Polecam go tylko jako lekturę przed snem.

Jeżeli jesteś już na tak dalekim etapie to polecam Ci rozwijać się albo poprzez SPOJa (rozwiniesz się w algorytmice) albo poprzez robienie własnych projektów, np. spróbuj zrobić jakąś grę komputerową (kółko i krzyżyk w konsoli itp) najpierw na funkcjach a potem na klasach. Oczywiście jedno nie wyklucza drugiego :wink:

Ja preferuję jako źródło wiedzy o Cpp dokumentację, ale dużo dobrego słyszałem np. o książce Stephena Prata. Jeżeli źródła internetowe to najlepiej anglojęzyczne.

PS
No i oczywiście zestaw klasyczny: Linux, na start niech będzie nawet srubuntu, ale poznajemy ustrojstwo no i oczywiście coś typu Far Manager + ConEmu albo Total Commander na windzie. Jak masz mysz to na weekend majowy polecam ustawić na tapecie podstawowe skróty klawiszowe na danym systemie operacyjnym (ale nie typu Ctrl+V, a np. Ctrl+Shift+Esc albo Win+D dla Windowsa) a potem mysz zanieść gdzieś, gdzie nie będzie kusić.