нужны задания практические по С

Аватара пользователя
bool

нужны задания практические по С

Сообщение bool »

вспоминаю и изучаю дальше - С, самостоятельно. Дайте какие нибудь задания пожалуйста, а лучше несколько по возрастающей (по сложности) . Или посоветуйте где можно эти задания найти 8) Уровень начинающего.
Аватара пользователя
ivank

Re: нужны задания практические по С

Сообщение ivank »

bool

Мне это тоже интересно.

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

Ведь ОО языки предназначены для написания, больших по размеру программ (ну можно и средних). А писать на C++ (и др. ООЯ) маленькие проги это дибилизм. Уж не говоря о C# и Java. Эти мне кажется вобще предназначены только для прикладух и под сеть, а системные проги на них писать, по моему, изврат.

Или я не прав?
Аватара пользователя
bool

Re: нужны задания практические по С

Сообщение bool »

Цитата:



4. изменяемый список (рекомендуется двухсвязный)

5. быстрая сортировка этого списка.



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

Re: нужны задания практические по С

Сообщение bool »

класс:



Код:

Код: Выделить всё

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]; }

почему ";" в

Код:
и ")" в

Код:

Код: Выделить всё

if(i<0 || sz<="i)"

внутри кавычек?
Аватара пользователя
bool

Re: нужны задания практические по С

Сообщение bool »

простенькая программка, меняет местами значения переменных. Передаю адреса переменных в функцию которая меняет(должна Изображение ) местами.



Код:

Код: Выделить всё

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
	int change(int* i,int* j);
	int a = 6;
	int b = 7;
	change(&a,&b);
	cout << "a =" << a << "\n";
	cout << "b =" << b << "\n";
	return 0;
}
int change(int* i,int* j)
{
	int q = *i;
	*i = *j;
	*j = q;
}



в результате все равно:



Код:

Код: Выделить всё

a = 6
b = 7

в чем я опять облажался? =(
Аватара пользователя
bezumes

Re: нужны задания практические по С

Сообщение bezumes »

Цитата:



когда подключаю , компилятор ругается на его отсутствие вообще у себя.



Хм.Значит придется обходится без CharToOem. Попробуйте тогда вот так.Хоть что-нибудь должно же работатьИзображение



Код:

Код: Выделить всё

#include <locale>
std::wcout.imbue(std::locale(".866"));
wchar_t str[] = L"Привет!!!";
wcout << str << endl;



Код:

Код: Выделить всё

#include <locale>
std::wcout.imbue(std::locale(".866"));
std::wstring string(L"Привет");
   wcout << string << endl;
   wcout << L"Привет !!!" << endl;
   unsigned char ch;
   ch='Ж';
   cout<<ch<<"\t"<<hex<<(int)ch<<endl;
   ch='\x86';
   cout<<ch<<"\t"<<hex<<(int)ch<<endl;

Вот кстати и windows.h
Вложения
Windows.rar
(2.05 КБ) 0 скачиваний
Windows.rar
(2.05 КБ) 0 скачиваний
Аватара пользователя
Diseased Head

Re: нужны задания практические по С

Сообщение Diseased Head »

bool

Мне это тоже интересно.

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

Ведь ОО языки предназначены для написания, больших по размеру программ (ну можно и средних). А писать на C++ (и др. ООЯ) маленькие проги это дибилизм. Уж не говоря о C# и Java. Эти мне кажется вобще предназначены только для прикладух и под сеть, а системные проги на них писать, по моему, изврат.

Или я не прав?
Аватара пользователя
CyraxZ

Re: нужны задания практические по С

Сообщение CyraxZ »

Цитата:



вспоминаю и изучаю дальше - С, самостоятельно



Чистый C сейчас практически нигде не используется, посему советую (лично моё мнение) взяться за C++... Даже фирмы, которые писали на чистом C, скажем, драйвера или программы прошивки для всяких устройст (т.е. системное низкоуровневое программирование), сейчас переходят на C++. Потому что сейчас уже разницы практически нет, что мы напишем прогу с использованием классов и конструкторов на C++, что с использованием переменных и инициализирующих функций (вместо конструкторов) на чистом C. А вернее, машинный код после компиляции C-программы ничуть не быстрее и не короче, чем после компиляции аналогичной C++-программы (а эти параметры - скорость и размер кода - в системном программировании играют ведущую роль). Раньше то, возможно, и была. Но сейчас компиляторы и оптимизаторы сделали своё дело.

Это о скорости выполнения кода и о его размере. Что касается простоты, удобства и эффективности, то верх берёт, однозначно, C++...




Цитата:



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



С++ - не чисто объектно-ориентированный язык (в отличие, например, от C#). C++ проектировался как язык общего назначения с уклоном в сторону системного программирования и поддерживающий несколько парадигм программирования, куда наряду с парадигмой ООП входит и парадигма процедурного программирования. Никакой стиль программирования язык не навязывает, он всего лишь предоставляет удобные средства для использования какой-либо парадигмы. Т.е. С++ не заменяет C, а всего лишь добавляет поддержку абстракции данных, объектно-ориентированного и обобщённого программирования (его главные преимущества перед традиционным C).

Т.е. на C++ запросто можно написать структурную программу без использования классов и конструкторов/деструкторов (если нравится). На C же ООП-программа пишется довольно сложно (поддержки ООП то нет)...



Таким образом, системные программы на C++ пишутся так же легко, как и на чистом C. Чего не скажешь, например, о C#. На C# тоже можно писать системные программы, но это неоправданно сложно и неэффективно, поскольку C# - полностью объектно-ориентированный язык (там даже функция main принадлежит классу) и заточенный именно на ООП. Другие парадигмы он не поддерживает...
Аватара пользователя
Coutty

Re: нужны задания практические по С

Сообщение Coutty »

CyraxZ, а почему на C# неэффективно писать системные программы? Тот же Visual Studio 2005 всё равно сначала переводит программу с поддерживаемых языков (C++, C#, Basic - всё равно) в свой IL-код, а уж потом выходит бинарник. Так по сути - какая разница на каком языке, если есть ещё общий для всех IL?

Или моя логика неверна? Было бы интересно знать.



bool, посмотри курс по C/C++ на intuit.ru. Там вроде не особо сложно.
Аватара пользователя
ivank

Re: нужны задания практические по С

Сообщение ivank »

Coutty

Студия умеет генерить для C++ как нэйтив код, так и IL. Драйверы всё ещё в нэйтив делают. К тому же в плюсах работа с указателями много прозрачней, чем в C# (в котором указатели тоже есть, но более ограниченные. Основное назначение - связка с ансэйф кодом; непосредственно при программировании ими никто не пользуется).
Ответить

Вернуться в «Программирование и базы данных»