Автор Тема: Изучение азов програмирования , советы начинающим и т.д и т.п  (Прочитано 27456 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Fly

  • Пользователь
  • Сообщений: 1896
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Цитата: gepar
Fly,сейчас попробую проделать , паралельно возник вопрос - как можно присвоить переменной значение типа <=2 и т.д (ну тобишь как присвоить значение a<3 так чтобы паскаль это понял и дальше потом не матерился ) .
Что-то не понял. Тебе надо переменной присвоить значение типа 2,999999999999? Или записать в переменную результат сравнения a<3 (истина/ложь)?

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
BaNdiT, хитрость усёк , фенкс за совет .

Добавлено позже:
Fly, если конкретно то упражнение в книге следующее : Определите значение величины q после выполнения каждой из следующих команд присваивания : q:=a<b<c and c<5 вот я и хочу узнать как можно присвоить c то что оно меньше 5 так как если я пишу q:=a<b<c<5 то компилятор материться , или я что-то не так делаю ?

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: gepar
если конкретно то упражнение в книге следующее : Определите значение величины q после выполнения каждой из следующих команд присваивания : q:=a<b<c and c<5
Это упражнение или кусок упражнения? Похоже, что кусок. Напиши целиком.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Цитата: topos84
Это упражнение или кусок упражнения? Похоже, что кусок. Напиши целиком.
нет , это всё , ну разве что можно добавить : a,b,c - целочисленные переменные , значение которых вводиться с клавиатуры .А так это всё задание .

Оффлайн Aku

  • Пользователь
  • Сообщений: 1471
  • Пол: Мужской
  • ушёл
    • Просмотр профиля
gepar, не понимать :&#39;(
Значение переменной ЛЮБОЕ МЕНЬШЕ 3-ёх? Случайное?! Тогда через Random. Или тебе нужен ИМЕННО строковое значение ">=3'????
Цитата
как можно присвоить переменной значение
mindblow/ ты хочешь описать переменной множество?! Типа (+бесконечности до 3]?? Нуууу! Объясни ЧТО ДЕЛАТЬ НАДО!!!

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Изучение азов програмирования , советы на
« Ответ #65 : 21 Октябрь 2009, 21:13:59 »
Ну вот другой пример где я на этом же застрял :
Написать программу вычисления функции где y=x*x если 0<x<2 .Ну дальше я писать не буду так как застрял то я в самом начале на том с чем не разобрался в прошлый раз , а конкретно вот код :
Дальше не пишу так как компилятор выдаёт ''операнды имеют неприводимые типы'' (это паскаль abc такое пишет если что) и наводит курсор сразу после двойки , такое же у меня было с присвоением в прошлом упражнении q значение a<b<c<5 .
Что я делаю не так подскажите плыз  :&#39;(

Оффлайн Aku

  • Пользователь
  • Сообщений: 1471
  • Пол: Мужской
  • ушёл
    • Просмотр профиля
Цитата
<
это же не знак арифметического/тригонометрического/любого другого действия!
Цитата
q:=a<b<c<5
разумеется НЕ ТАК.
Тебе нужно присвоить НАИМЕНЬШЕЕ значение из 3-х?
if (a<b) and (a<c)
then q:=a
else
     if (b<c) and (b<a) then q:=b
                              else q:=c;
оно:?

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Aku,вот второй пример , возможно там понятнее будет что у меня конкретно не получается .

Оффлайн Aku

  • Пользователь
  • Сообщений: 1471
  • Пол: Мужской
  • ушёл
    • Просмотр профиля
Re: Изучение азов програмирования , советы на
« Ответ #68 : 21 Октябрь 2009, 21:16:23 »
Ну вот другой пример где я на этом же застрял :
Написать программу вычисления функции где y=x*x если 0<x<2 .Ну дальше я писать не буду так как застрял то я в самом начале на том с чем не разобрался в прошлый раз , а конкретно вот код :
Дальше не пишу так как компилятор выдаёт операнды имеют неприводимые типы (это паскаль abc такое пишет если что) и наводит курсор сразу после двойки , такое же у меня было с присвоением в прошлом упражнении q значение a<b<c<5 .
Что я делаю не так подскажите плыз  :&#39;(
ещё проще. НЕТ ДВОЙНОГО УСЛОВИЯ В ПАСКАЛЕ (как вариант - я лох :lol:)
if 0<x<2 thenзамени на
if (x>0) and (x<2) thenкомпилирует?


Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Изучение азов програмирования , советы на
« Ответ #69 : 21 Октябрь 2009, 21:26:02 »
Aku, угу , оно  , там правда в том упражнении по сути врядли имелось ввиду использование else и if (они дальше изучаются по этой книге ) , ну да хорошо что помог разобраться как задавать условие типа a<b<c .

Добавлено позже:
Это я первое уравнение только что сделал , сейчас попробую второе сделать .
« Последнее редактирование: 21 Октябрь 2009, 21:32:01 от gepar »

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: Aku
НЕТ ДВОЙНОГО УСЛОВИЯ В ПАСКАЛЕ
Даже я это вспомнил, хотя с паскалем уже лет 8 ничего не делал.  :)

Добавлено позже:
Цитата: gepar
как задавать уравнения типа a<b<c
Хорошо себе уравнение, нечего сказать! ^_^

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Цитата: topos84
Хорошо себе уравнение, нечего сказать!
То я с радости что всё получилось не то написал    :)

Добавлено позже:
Ну и ещё маленький вопросик к спецам : если задать что переменная будет real ну и после всех операций и присваиваний ответ получаетcя 1,2000001E+000 ну или что-то подобное то как вернуть этому нормальный облик тобишь как сделать чтобы выводился результат в десятиричной системе  , подскажите пожалуйста ?

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
gepar, советую тебе зачать новую тему: "Вспоминаем Турбо-Паскаль и решение задач на нем" - тебе будет радость от того, что люди будут помогать тебе решать твои задачи, а остальным, кто темой заинтересуется - ностальгия, понимаешь ли. :)

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
topos84, а стоит ли ?Боюсь строка "решение задач на нем" отпугнёт всех да и мне не сколько решение задач  важно , а сколько помощ в тех строчках что не разобрался я  :)

Оффлайн Aku

  • Пользователь
  • Сообщений: 1471
  • Пол: Мужской
  • ушёл
    • Просмотр профиля
То я с радости что всё получилось не то написал    :)

Добавлено позже:
Ну и ещё маленький вопросик к спецам : если задать что переменная будет real ну и после всех операций и присваиваний ответ получаетcя 1,2000001E+000 ну или что-то подобное то как вернуть этому нормальный облик тобишь как сделать чтобы выводился результат в десятиричной системе  , подскажите пожалуйста ?
когда выводишь переменную добавь :5:4
типа writeln(s:5:4);

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Цитата: Aku
writeln(s:5:4);
Код работает , а можно в двух словах почему нужно приписывать именно :5:4  ?Ну для общего понимания что же я за действие совершаю приписав :5:4 .

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1583
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Запутался в функциях(C++). :blush:
Где писать объявление, где определение функции?
Как я понял функция это часть программы.
Тоесть в программу складывающую два числа можно вставить функцию которая будет прибавлять к результату "5".
как определить и как объявить функцию "прибавления к результату пятёрки"?
Как я понял в заголовочный файл мы записываем объявление. А куда записывать определение? :(

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: Mr2
Как я понял функция это часть программы
Функции и процедуры суть подпрограммы в Паскале. Отличие функции от процедуры в том, что с функцией можно обращаться как с переменной (присваивать ее значение другим переменным и пр.), а с процедурой нельзя.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7421
    • Просмотр профиля
Функции и процедуры суть подпрограммы в Паскале. Отличие функции от процедуры в том, что с функцией можно обращаться как с переменной (присваивать ее значение другим переменным и пр.), а с процедурой нельзя.
Садись два. Функция от процедуры отличается тем, что функция возвращает результат в себе а процедура нет. Но, при объявлении: procedure SomeProc(var a,b:byte) и function SomeFunc(var a,b:byte):byte a и b тоже могут вернуть какие-то значения. Так работают всем известные blockread/blockwrite, например. Так что, с точки зрения возврата результата различаются только возвратом результата в себе. Например, можно сделать так:
function MyFunc(file:string; var size:dword):boolean;
А потом юзать как:
if MyFunc('c:\windows\explorer.exe',Size) then WriteLn('File size is '+Size) else WriteLn('Error while getting file size!');
Естественно, можно задавать значение по умолчанию для объявленных переменных. Единственный минус в том, что если ты при декларировании переменной в функции или процедуре указываешь именно переменную, то туда нельзя уже подставлять результат предыдущей функции (т.е. будет ошибка, если сделать MyFunc(InputBuffer,Size), если InputBuffer не переменная типа string, а функция, которая возвращает string)...

Это что касается паскалей. А человек вообще-то спросил за С++...
« Последнее редактирование: 22 Октябрь 2009, 07:36:01 от HardWareMan »

Оффлайн Henty

  • Пользователь
  • Сообщений: 796
  • Пол: Мужской
  • Зовите меня Puffin либо Панф )
    • Просмотр профиля
Запутался в функциях(C++). :blush:
Где писать объявление, где определение функции?
Как я понял функция это часть программы.
Тоесть в программу складывающую два числа можно вставить функцию которая будет прибавлять к результату "5".
как определить и как объявить функцию "прибавления к результату пятёрки"?
Как я понял в заголовочный файл мы записываем объявление. А куда записывать определение? :(

Вроде бы там пофигу где писать. Я пишу до функции Main().
оформляется так же, как и Main

int MyFunc(parameter1,parameter2...)
{
operator1;
operator2;
...
return 1;
}

int - это тип значения, которое функция возвращает. Без возврата (ака процедура) надо писать void.
Потом идут параметры. Чтобы сделать их изменяемыми, перед параметром нужно вписать значок & (прим. void MyFunc(&parameter1, parameter2){}).
Ну дальше думаю поймёшь. Напомню, что return значение возвращает какое-то значение и выходит из функции. Если есть void, то return писать не надо.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1583
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Вроде бы там пофигу где писать.
А что писать в заголовочном файле?
Я думал что сама функция пишется в отдельном файле function_mr_2.cpp. А затем включается в программу с помощью
#include "function_mr_2.h"

Вызывается:
int main(){
  playpen paper;
  paper.scale(3);
  function_mr_2(paper, -4, 0, 9, 0, -4, 9, black);
  paper.display();
  cout << "press enter to exit";
  cin.get();
  }
Правильно ли я понял?

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: HardWareMan
Садись два.
Спасибо за педагогику. (с)  :lol:

Цитата: HardWareMan
Функция от процедуры отличается тем, что функция возвращает результат в себе а процедура нет.
Именно это я и написал, но на языке математики: результатом применения (выполнения) функции (как подпрограммы) есть некое значение (того или иного типа), которое выражается в виде, привычном для математиков  F(X1, ... , X2), а это, в свою очередь, на языке программинга и выражается словами "возвращает результат в себе".  ;)

Так что не два, а три. :)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9372
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
млин, чего спорить, мне в этом плане Ц нравится: хош сделать процедуру - делай функцию возвращающую void,
но если передавать туда указатели - можно легко возвращать из нее данные, но имхо это выходит за рамки топика, и новичкам от познания подобных вещей пользы аж никакой...

Добавлено позже:
от фразы
Цитата
возвращает результат в себе
почему-то возникла ассоциация с беременной девкой  0_0, осенне обострение наверно...  :&#39;(

Оффлайн Henty

  • Пользователь
  • Сообщений: 796
  • Пол: Мужской
  • Зовите меня Puffin либо Панф )
    • Просмотр профиля
А что писать в заголовочном файле?
Я думал что сама функция пишется в отдельном файле function_mr_2.cpp. А затем включается в программу с помощью
#include "function_mr_2.h"

Вызывается:
int main(){
  playpen paper;
  paper.scale(3);
  function_mr_2(paper, -4, 0, 9, 0, -4, 9, black);
  paper.display();
  cout << "press enter to exit";
  cin.get();
  }
Правильно ли я понял?

нее. Это ты создаёшь header-файл. Есть файлы stdio.h, conio.h, vcl.h, clx.h, math.h, которые хранят в себе список разных функций. В хэлпе всё написано, когда смотришь описание функции, там указано какой заголовочный файл использовать.
Выносить свои функции в заголовочный файл - это уже твоё дело. Компилятор всё равно их кидает в общую кучу (от того и показывает тысячи строк XD).
Можешь написать свой набор, авторский, универсальный. И его через #include подключать.
Но на начальном этапе я в этом смысла не вижу, потому функции можно писать сразу там же, где и прогу.
Более того, main - это функция. Есть в Си такое условие - точка входа в программу это функция с именем main. От неё все ноги и растут  :)

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7421
    • Просмотр профиля
Именно это я и написал...
Смотрим:
Функции и процедуры суть подпрограммы в Паскале. Отличие функции от процедуры в том, что с функцией можно обращаться как с переменной (присваивать ее значение другим переменным и пр.), а с процедурой нельзя.
Попробуй присвоить ей значение вне ее тела. Попробуй взять ее значение внутри ее тела. Чувствуешь разницу?
Так что не два, а три. :)
Нет, все-таки 2. Ну может, даже, 2+.  :D

Цитата
возвращает результат в себе
от фразы  почему-то возникла ассоциация с беременной девкой  0_0, осенне обострение наверно...  :&#39;(
Действительно.

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: HardWareMan
Попробуй присвоить ей значение вне ее тела.
Я имел в виду, что она обладает некоторыми свойствами переменной, а не всеми.

Цитата: HardWareMan
Попробуй взять ее значение внутри ее тела.
А рекурсивные функции в Паскале как задаются? Всегда без взятия ее значения внутри ее тела? (Я просто уже не помню)

Ну вот, можно ли тот же факториал так прописать в Паскале:

function Fakt(n:byte):longint;
 begin
  if n=o then Fakt(n):=1
           else Fakt(n):=Fakt(n-1)*n;
 end;

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7421
    • Просмотр профиля
Я имел в виду, что она обладает некоторыми свойствами переменной, а не всеми.
Но не сказал ведь?
А рекурсивные функции в Паскале как задаются? Всегда без взятия ее значения внутри ее тела? (Я просто уже не помню)
Ну вот, можно ли тот же факториал так прописать в Паскале:
function Fakt(n:byte):longint;
 begin
  if n=o then Fakt(n):=1
           else Fakt(n):=Fakt(n-1)*n;
 end;
Ты не путай рекурсию и "функция как переменная". При попытке взять значение функции внутри ее тела происходит все тот же ее вызов (а так как он внутри ее тела то и происходит рекурсивный вызов). А присвоить значение самой функции можно только в ее теле. Так что не убедил. Учись излагать свои мысли наиболее понятно для окружающих, чтобы не было двояких смыслов.
Код работает , а можно в двух словах почему нужно приписывать именно :5:4  ?Ну для общего понимания что же я за действие совершаю приписав :5:4 .
Write/WriteLn - это макрос а не функция. Именно поэтому, туда можно запихать неограниченное количество параметров или вызвать вообще без таковых. При выводе вещественных чисел можно их форматировать. В твоем примере, writeln(x:5:4), мы видим, что число Х должно быть отформатировано до 5 символов в длинну (первое число) и при этом содержать 4 знака после запятой (второе число). Второе число можно опустить и тогда необязательные числа после запятой не будут выводиться.
Например, программа:
uses dos,crt;
var  c,y:integer;
     x:real;
     t:text;
     l:string;
begin
     randomize; assign(t,'d:\work\pascal\numbers.txt'); rewrite(t);
     writeln(t,'Real numbers formation:');
     for c:=0 to 9 do begin
         x:=random(100)/33;
         Write(t,'Number: "'); Write(t,x); Write(t,'", x:6 result: "');
         Write(t,x:6); WriteLn(t,'"');
         Write(t,'Number: "'); Write(t,x); Write(t,'", x:4:2 result: "');
         Write(t,x:4:2); WriteLn(t,'"');
         Write(t,'Number: "'); Write(t,x); Write(t,'", x:8:0 result: "');
         Write(t,x:8:0); WriteLn(t,'"');
         end;
     writeln(t,'Integer numbers formation:');
     for c:=0 to 9 do begin
         y:=random(20)*10;
         Write(t,'Number: "'); Write(t,y); Write(t,'", y:6 result: "');
         Write(t,y:6); WriteLn(t,'"');
         Write(t,'Number: "'); Write(t,y); Write(t,'", y:4 result: "');
         Write(t,y:4); WriteLn(t,'"');
         end;
     close(t);
end.
и ее вывод:
Real numbers formation:
Number: " 2.60606060606005E+0000", x:6 result: " 2.6E+0000"
Number: " 2.60606060606005E+0000", x:4:2 result: "2.61"
Number: " 2.60606060606005E+0000", x:8:0 result: "       3"
Number: " 1.54545454545405E+0000", x:6 result: " 1.5E+0000"
Number: " 1.54545454545405E+0000", x:4:2 result: "1.55"
Number: " 1.54545454545405E+0000", x:8:0 result: "       2"
Number: " 2.72727272727207E+0000", x:6 result: " 2.7E+0000"
Number: " 2.72727272727207E+0000", x:4:2 result: "2.73"
Number: " 2.72727272727207E+0000", x:8:0 result: "       3"
Number: " 2.72727272727207E+0000", x:6 result: " 2.7E+0000"
Number: " 2.72727272727207E+0000", x:4:2 result: "2.73"
Number: " 2.72727272727207E+0000", x:8:0 result: "       3"
Number: " 2.93939393939218E+0000", x:6 result: " 2.9E+0000"
Number: " 2.93939393939218E+0000", x:4:2 result: "2.94"
Number: " 2.93939393939218E+0000", x:8:0 result: "       3"
Number: " 7.27272727272975E-0001", x:6 result: " 7.3E-0001"
Number: " 7.27272727272975E-0001", x:4:2 result: "0.73"
Number: " 7.27272727272975E-0001", x:8:0 result: "       1"
Number: " 3.03030303030482E-0001", x:6 result: " 3.0E-0001"
Number: " 3.03030303030482E-0001", x:4:2 result: "0.30"
Number: " 3.03030303030482E-0001", x:8:0 result: "       0"
Number: " 2.30303030303185E+0000", x:6 result: " 2.3E+0000"
Number: " 2.30303030303185E+0000", x:4:2 result: "2.30"
Number: " 2.30303030303185E+0000", x:8:0 result: "       2"
Number: " 2.57575757575614E+0000", x:6 result: " 2.6E+0000"
Number: " 2.57575757575614E+0000", x:4:2 result: "2.58"
Number: " 2.57575757575614E+0000", x:8:0 result: "       3"
Number: " 2.87878787878799E+0000", x:6 result: " 2.9E+0000"
Number: " 2.87878787878799E+0000", x:4:2 result: "2.88"
Number: " 2.87878787878799E+0000", x:8:0 result: "       3"
Integer numbers formation:
Number: "120", y:6 result: "   120"
Number: "120", y:4 result: " 120"
Number: "50", y:6 result: "    50"
Number: "50", y:4 result: "  50"
Number: "190", y:6 result: "   190"
Number: "190", y:4 result: " 190"
Number: "50", y:6 result: "    50"
Number: "50", y:4 result: "  50"
Number: "100", y:6 result: "   100"
Number: "100", y:4 result: " 100"
Number: "120", y:6 result: "   120"
Number: "120", y:4 result: " 120"
Number: "40", y:6 result: "    40"
Number: "40", y:4 result: "  40"
Number: "160", y:6 result: "   160"
Number: "160", y:4 result: " 160"
Number: "20", y:6 result: "    20"
Number: "20", y:4 result: "  20"
Number: "150", y:6 result: "   150"
Number: "150", y:4 result: " 150"
Так понятно? Замечу, что для целых чисел второе число задавать нельзя, ибо они на то и целые, что у них после запятой нету дробной части. Так же обращу внимание на то, что указание дробной части для реальных чисел является округлением(!), это видно на примере.
« Последнее редактирование: 24 Октябрь 2009, 08:37:42 от HardWareMan »

Оффлайн topos84

  • Emu-Land Team
  • Сообщений: 2762
  • Пол: Мужской
    • Просмотр профиля
Цитата: HardWareMan
Попробуй присвоить ей значение вне ее тела.
Ну да, этого сделать нельзя.

Цитата: HardWareMan
Попробуй взять ее значение внутри ее тела.
Вот взял:

var m:longint;
function Fakt(n:byte):longint;
 begin
  if n=o then
             begin
               Fakt(n):=1;
               m:=Fakt(n); {вот взял Fakt(0)}
             end
           else Fakt(n):=Fakt(n-1)*n;
 end;

А уж происходил ли при этом рекурсивный вызов или нет - это дело десятое. ;)

Цитата: MetalliC
почему-то возникла ассоциация с беременной девкой
Однако ж трудно забеременеть, оставаясь в девках.  :lol:

Цитата: HardWareMan
Учись излагать свои мысли наиболее понятно для окружающих, чтобы не было двояких смыслов.
Учись отличать смысл от значения: первое - это то, как понимаешь ты (преобладание субъективности), второе - то, как принято понимать в обществе (преобладание объективности). ;)
Придирчивый вы наш. :)

Оффлайн aUruM

  • Emu-Land Team
  • Сообщений: 1793
  • Пол: Мужской
    • Просмотр профиля
Ассемблер, на мой взгляд, бессмысленно изучать, не понимая основы архитектуры компьютера, устройства процессора, памяти и шин и т.д.

BASIC - не самый плохой язык для обучения основам программирования детей 10-12 лет (я сам в 10 лет с него начинал), но для более серьезных целей, по-моему, он подходит плохо. В целом, основы программирования лучше изучать в Паскале, а потом перейти на C/C++. После C/C++ вы спокойно освоите практически любой язык программирования за пару дней.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Цитата: aUruM
После C/C++ вы спокойно освоите практически любой язык программирования за пару дней.
А всвязи с чем ? :)