Вопрос № 61311: Здравствуйте уважаемые эксперты. Я начал изучать С++(Есть средний опыт программирования на С). Читаю Страуструпа. На что надо обращать особое внимание? Или может есть более подходящая литература?
За раннее большое спасибо....Вопрос № 61340: Здравствуйте, уважаемые эксперты!
У меня небольшая проблема с переведением программы с Pascal на C.
Вот что имелось на Pascal:
Program Recursive;
Uses CRT;
Type Tmas=Array[1..32413] Of Integer;
Var A:Tmas;
num:Integer;<b...
Вопрос № 61.311
Здравствуйте уважаемые эксперты. Я начал изучать С++(Есть средний опыт программирования на С). Читаю Страуструпа. На что надо обращать особое внимание? Или может есть более подходящая литература?
За раннее большое спасибо.
Отвечает: Jadd
Здравствуйте, Alexander V Paladiy!
На ООП, на шаблоны, на исключения, на все то, для чего создавался язык. Страуструп - куда удачнее литература?
Успехов в познаниях.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ICQ: 28260749 ---- Ответ отправлен: 05.11.2006, 00:29
Отвечает: Lonely Wolf
Здравствуйте, Alexander V Paladiy!
С++ это ООП. Его главные признаки это инкапсуляция, полиморфизм и наследование, на это и надо обращать внимание. Страуструп - первоисточник, но сложновато для понимания(по крайней мере для меня).Советую У.Савич C++ во всей полноте.
--------- Ассемблер FOREVER!!!
Ответ отправил: Lonely Wolf (статус: 9-ый класс)
Ответ отправлен: 05.11.2006, 12:50
Отвечает: Delph
Здравствуйте, Alexander V Paladiy!
Практический совет, применимый к изучению любого языка: попробуйте написать что-то, что будет интересно для Вас, и займёт хотя-бы пару недель упорного труда. У Вас сразу возникнет куча вопросов, но эти вопросы будут уже более конкретны, и ответы на них отложатся в Вашей памяти. На конкретном проекте Вы сможете в полной мере прочувствовать язык и приобретёте ценный опыт.
Тему можете выбрать совершенно любую. Если Вы изучаете C++ не под нажимом преподавателя, а по собственной инициативе - выбирайте что-то, что будет интересно именно Вам. Это может быть игрушка, записная книжка в собственном формате, визуализация научного расчёта... Всё, что угодно!
Ответ отправил: Delph (статус: 3-ий класс)
Ответ отправлен: 07.11.2006, 11:05
Вопрос № 61.340
Здравствуйте, уважаемые эксперты!
У меня небольшая проблема с переведением программы с Pascal на C.
Вот что имелось на Pascal:
Program Recursive;
Uses CRT;
Type Tmas=Array[1..32413] Of Integer;
Var A:Tmas;
num:Integer;
Procedure Print(t:Integer);
Var i:Integer;
Begin
For i:=1 To t Do Write(A[i]:3);
WriteLn;
End;
Function Min(a,b:Integer):Integer;
Begin
If a<b Then Min:=a Else Min:=b
End;
Procedure Solve(n,t:Integer);
Var i,q:Integer;
Begin
If n=1 Then Begin A[t]:=1;Print(t) End
Else Begin
If n<=A[t-1] Then Begin
A[t]:=n; Print(t) End;
q:=Min(n-1,A[t-1]);
For i:=q DownTo 1 Do Begin
A[t]:=i;
Solve(n-i,t+1)
End
End
End;
Begin
ClrScr;
ReadLn(num);
Solve(num,1);
ReadLn;
End.
В приложении попытка перевести на C.
Подскажите, пожалуйста, что не работает. Выводит только исходное число, остальные не выводятся вовсе.
Заранее спасибо!
Отвечает: JohnP
Здравствуйте, Mini Cooper!
Все дело в условиях циклов:
вместо for(i=1;i==t;i++) нужно for(i=1;i<=t;i++);
вместо for(i=q;i==1;i--) нужно for(i=q;i>=1;i--);
кроме того, правильнее будет не malloc(n*sizeof a), а malloc(n*sizeof(int)).
Удачи!
Ответ отправил: JohnP (статус: 2-ой класс)
Ответ отправлен: 05.11.2006, 18:54 Оценка за ответ: 5 Комментарий оценки: Спасибо! Всё работает! Что-то ступил с условиями...