Войти

Показать полную графическую версию : нужны задания практические по С


Страниц : 1 [2] 3

bool
15-03-2007, 16:45
4. изменяемый список (рекомендуется двухсвязный)
5. быстрая сортировка этого списка.


где почитать про изменяемые списки? поисковики меня отправляют на форумы по дельфи и паскалю.

pva
15-03-2007, 20:03
перед началом почитайте C Увлекаться не советую, ибо хороший программист на С - плохой на С++. Если не работают typedef - надо заменить их на #define. Книжку советую одну: Страуструп, "программирование на С++". Здесь, на сайте можно закачать. Древняя, но такая хорошая! Про двухсвязный список там целая глава. С быстрой сортировкой можно разобраться, посмотрев алгоритмы std::sort, std::stable_sort. А можно сильно мозги не забивать, а просто пользоваться ими. Они самооптимизируются и под вектора и под списки. Работают медленней, чем сортировка по хешу, но если надо, в новейших версиях библиотек поставщиков компиляторов, как правило, такие вещи есть. А вообще, если данных много, то лучше воспользоваться специализированным для них хранилищем - SQL-сервером, которое и выберет и отсортирует с максимальной возможной скоростью.

bool
19-03-2007, 12:04
какой компилятор посоветуете использовать для изучения С++ ? работаю на вин2003, если такие существуют , то лучше бесплатный )

билдер С++ или MS Visual C++ ? правда оба не бесплатных 0=)

bool
19-03-2007, 15:24
устанавливаю visual C++ express, http://msdn.microsoft.com/vstudio/express/downloads/default.aspx кто нибудь работал в нем? чего о нем можно сказать хорошего и плохого?)

bool
21-03-2007, 09:52
для обучения вроде самое то, и бесплатно и все вроде есть(для начинающего), только вот почему то у меня без namespace отказывается он работать, т.е. программировать только по новому стандарту? а у Страуструпа в книге описание идет по старому 8( так что параллельно держу открытой литературу Герберта Шилдта по С++.

ivank
21-03-2007, 13:51
а у Страуструпа в книге описание идет по старому 8(
Какое издание? С третьего (которому уже почти 8 лет!) идет по "новому" стандарту. Если внимательно читать, то почти в самом начале книги (как раз после введения понятия namespace) он пишет, что для экономии места std:: или using namestpace std; он в примерах будет опускать.

bool
21-03-2007, 13:55
у меня видимо самое первое издание))) вот оно http://dump.ru/files/2/2434794630/ , можно ссылку на последнее издание? 8)

bool
21-03-2007, 14:16
http://cclib.nsu.ru/projects/gnudocs/texts/cpptut.html - вот ещё, но там тоже ничего нет про новый стандарт, или нового издания нет в электронном виде?

pva
21-03-2007, 17:09
про namespace - это мелочи, на которые вы зря обращаете внимание. Один раздогадался - и на всю жизнь. Почитайте про двусвязные списки.

bool
28-03-2007, 10:27
возможно не в тот раздел пишу, и это связано с ОС , но исправить не знаю где. Среда MS Visual C++ Express, пишу консольный проект, при запуске кирилица отображаеца "кракозябрами", где и как это можно исправить?

bool
28-03-2007, 15:59
класс:
class vector {
int* v;
int sz;
public:
vector(int); // конструктор
~vector(); // деструктор
int size() { return sz; }
void set_size(int);
int& operator[](int);
int& elem(int i) { return v[i]; }
};


определяем конструктор:
vector::vector(int s)
{
if (s<=0) error("плохой размер вектора"); sz="s;" v="new" int[s]; }

и функцию:
int& vector::operator[](int i)
{
if(i<0 || sz<="i)" error("индекс выходит за границы"); return v[i]; }

почему ";" в sz="s;" и ")" в if(i<0 || sz<="i)" внутри кавычек?

ivank
28-03-2007, 23:17
bool
возможно не в тот раздел пишу, и это связано с ОС , но исправить не знаю где. Среда MS Visual C++ Express, пишу консольный проект, при запуске кирилица отображаеца "кракозябрами", где и как это можно исправить?По форуму поищите. Неоднократно поднимавшаяся тема.

По поводу кавычек. Вы вообще свой пример скомпилировать пытались? И не получится. Не пользуйтесь тем источником, из которого пример. Ибо бяка.

Diseased Head
28-03-2007, 23:24
bool
при запуске кирилица отображаеца "кракозябрами", где и как это можно исправить?При компиляции что-ли?

А про кавычки, может так:
sz="s";и
if(i<0 || sz<=i)эт по логике, а так ivank верно сказал --- БЯКА!

trinarry code GO? ........................ GO!!! => not bool

bool
29-03-2007, 02:24
эт по логике, а так ivank верно сказал --- БЯКА!

по логике я тоже догадался как нужно ставить)))))))))) дело в том, что во всех учебниках которые я нашел, Бьерна Страустрапа такая бяка. Не знаю, мб перенабирали текст так криво. Компилировал я так, как по логике =) просто интересно почему весь учебник так перелопачен, ведь так хвалили литератур эту.

pva
29-03-2007, 16:21
Я пользуюсь вот вариантом книжки Страуструпа, который прикрепил во вложении. Вот честно, никаких упомянутых глюков не нашёл. Посмотрите, не пожалеете ;)

bool
29-03-2007, 17:06
Спасибо =) , действительно все исправлено, да ещё и примеры есть к каждой главе в архиве

ivank
30-03-2007, 01:08
просто интересно почему весь учебник так перелопачен, ведь так хвалили литератур эту.
Потому что хвалили литературу, а не результат труда криворуких наборщиков.

bool
21-04-2007, 21:40
у меня вопрос по компиляторам снова 8)
вот код:
#include "stdafx.h"
#include <iostream>
using namespace std;


int main()
{
char alpha[] = "abcdefghijklmnopqrstuvwxyz";
int sz = strlen(alpha);
for(int i=0;i<sz;i++){
char ch = alpha[i];
cout << '\'' << ch << '\''
<< " = " << int(ch) <<
" = " << oct(ch) << "\n";
}

return 0;
}



ошибка в преобразовании символьного типа в шестнадцатиричную запись:
c:\documents and settings\администратор.comp\мои документы\visual studio 2005\projects\5.1\5.1\5.1.cpp(17) : error C2664: 'std::oct' : cannot convert parameter 1 from 'char' to 'std::ios_base &'
все остальное работает, вопрос: дело в компиляторе или ошибка в коде?
компилятор visual C++ express

ivank
22-04-2007, 00:07
Надо так:
cout << '\'' << ch << '\''
<< " = " << int(ch) <<
" = " << oct << ch << dec << "\n";

bool
22-04-2007, 00:24
пардон, в восьмиричную

ivank

спасибо)




© OSzone.net 2001-2012