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

С какого ЯП начать?

Тема в разделе "Досуг", создана пользователем Kent, 29 ноя 2016.

  1. Ветеран

    Регистрация:
    6 фев 2012
    Сообщения:
    33
    Симпатии:
    3
    Здравствуйте, хочу начать изучать ЯП. Думал начать изучать C++ , но многие люди говорят что начинать изучение С++ без знания других языков все равно что начинать учить математику с линейных уравнений. Прошу подсказать с какого языка программирования стоит начать.
     
  2. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    718
    Симпатии:
    452
    Бред. Ну изучишь ты, скажем, паскаль, и что тебе это даст? Начнешь учить плюсы, а значит, нужно привыкать к новому синтаксису, нужно заводить новые привычки, новые правила. А так, что то не понятно, полез в тот же msdn, там и описание, и примеры на плюсах, изучай не хочу
     
    ExPlayer и Kent нравится это.
  3. Ветеран

    Регистрация:
    6 фев 2012
    Сообщения:
    33
    Симпатии:
    3
    Спасибо за совет, поставил Visual Studio и начал таки изучать с ++ . Пока-что вроде-бы все понятно :good:
     
  4. Ветеран

    Регистрация:
    26 дек 2014
    Сообщения:
    311
    Симпатии:
    187
    Пол:
    Мужской
    Krinkels, Ну ну совсем согласен. Смысл в том, что на C++ самый сложный синтаксис (для меня, по крайне мере). Там даже простейшая программа страшно выглядит, не говоря уже о чем-то серьёзном. Вот пример:
    Решение квадратного уравнения: С++
    Код (C):

    #include <iostream>
    #include <cmath>
    #include <conio.h>
    using namespace std;

    int main()
    {
        double a,b,c,D;
        do
        {
            cout<<"Solving a*x^2 + b*x + c = 0\n";
            cout<<"a = ";cin>>a;
            cout<<"b = ";cin>>b;
            cout<<"c = ";cin>>c;
            D = pow(b,2) - 4*a*c;
            if(0 <= D)
            {
                cout<<"x1 = "<<(-b - sqrt(D))/2*a<<endl;
                if(0 < D)
                    cout<<"x2 = "<<(-b + sqrt(D))/2*a<<endl;
            }
            else
            {
                cout<<"Equation has complex answer\n";
                //sqrt(D) = 0 + j*val
                //0 + j*val + re = re + j*val
                D = fabs(D);
                cout<<"x1 = "<<-b/2*a<<" - j*"<<sqrt(D)/2*a<<endl;
                cout<<"x2 = "<<-b/2*a<<" + j*"<<sqrt(D)/2*a<<endl;
            }
            cout<<"Press Y - for new input\n";
        }
        while(toupper(getch()) == 'Y');
        system("pause");
        return 0;
    }
     

    Решение квадратного уравнения: Паскаль
    Код (Delphi):

    Var
      a, b, c, d: real;
    begin
      write('Введите коэффициенты a,b,c ');
      readln(a, b, c);
      d := sqr(b) - 4 * a * c;
      if d = 0 then
      writeln('Корень один x = ', (-b / (2 * a))
      else if d >0 then
      writeln('x1 = ',(-b + sqrt(d)) / (2 * a), ' x2 = ',(-b - sqrt(d)) / (2 * a))
      else writeln('Действительных корней нет');
    end.
     

    Но это моё скромное ИМХО, решать в любом случае Вам. Но не даром же в школах изучают Паскаль, а не, скажем, C++ (По крайне мере в тех, которые я знаю)

    Код (C):

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "cyr_io.h"

    void add(void)
    {
            FILE    *File;
            char myfile[50];
            short   Iter=0;
            short   Temp=0;
            short   CoordX=0;
            short CoordY=0;
            short   SumObj=0; //Коллличество объектов уже записанных в файле
            short NPoint=0; // Количество точек в метрике объекта
    // Открываем файл на чтение, чтобы проверить его на наличие и количество записаных объектов
            rprintf("Введите имя файла\n");
            gets(myfile);
            if((File=fopen(myfile,"rb"))!=NULL)
            {
                while(!feof(File))
                {
                    fread(&Temp,sizeof(short),1,File);
                    if(Temp=='\n')  SumObj++;
                }
                SumObj--;
                fclose(File);
            }

            if(SumObj==0)
            {
                File=fopen(myfile,"wb");
            }
            else
            {
                File=fopen(myfile,"ab");
            }

            SumObj++;
            fwrite(&SumObj,sizeof(short),1,File);

        rprintf("Введите количество точек в метрике объекта:");
        scanf("%d",&NPoint);
            fwrite(&NPoint,sizeof(short),1,File);

            for(Iter=0;Iter<NPoint;++Iter)
            {
                rprintf("Введите X координат объекта:");
                scanf("%d",&CoordX);
                rprintf("Введите Y координату объекта:");
                scanf("%d",&CoordY);
                fwrite(&CoordX,sizeof(short),1,File);
                fwrite(&CoordY,sizeof(short),1,File);
            }
            Temp='\n';
            fwrite(&Temp,sizeof(short),1,File);

            fclose(File);
        getchar();
    }

    void view(void)
    {
        FILE    *File;
        short   NPoint=0;//Количество точек в метрике объекта
        char myfile[50];
        short   NObj=0;// № объекта
        short   SumObj=0;// Количество объектов уже записаных в файе
        short   Iter=0;
        short   Temp=0;
    // Открываем файл на чтение, чтобы проверить его наличие и количество записаных объектов
            rprintf("Введите имя файла\n");
            gets(myfile);
        if((File=fopen(myfile,"rb"))!=NULL)
        {
            while(!feof(File))
            {
                fread(&Temp,sizeof(short),1,File);
                if(Temp=='\n')  SumObj++;
            }

            SumObj--;

            fclose(File);
        }
        else
        {
            rprintf("Файл с метриками отсутствует !");
            return;
        }

        do
        {
            rprintf("Введите номер объекта:");
            scanf("%d", &NObj);
        }   while(NObj<1 || NObj>SumObj);

        File=fopen(myfile,"rb");
        while(!feof(File))
        {
            fread(&Temp,sizeof(short),1,File);
            if(Temp==NObj)
            {
                fread(&NPoint,sizeof(short),1,File);
                for(Iter=0;Iter<NPoint;++Iter)
                {
                    fread(&Temp,sizeof(short),1,File);
                    rprintf("Координата X: %2d, ",Temp);
                    //CoordObj1[0][Iter]=Temp;
                    fread(&Temp,sizeof(short),1,File);
                    rprintf("Координата Y: %2d\n, ",Temp);
                    //CoordObg1[1]=Temp;
                }
            }
            do
            {
                fread(&Temp,sizeof(short),1,File);
            } while(Temp !='\n');
        }
        fclose(File);
    }
    int menu_select(void)
    {
        char str[2],pos;

        printf("\n");
        rprintf("1. Добавить объект в картограф.\t");
        rprintf("2. Вывести метрику объекта.\t");
        rprintf("3. Выход");

        do
        {
            rprintf("\n Введите номер нужного пункта:");
            gets(str);
            pos=atoi(str);
        } while(pos<0 || pos>3);
        return pos;
    }

    void main(void)
    {
        char select;
        system("cls");
        for(;;)
        {
            select=menu_select();
            switch(select)
            {
            case 1: add(); break;
            case 2: view(); break;
            case 3: exit(0); break;
            default: break;
            }
        }
    }
     
     
    Последнее редактирование: 1 дек 2016
  5. Ветеран Проверенный

    Регистрация:
    15 июн 2011
    Сообщения:
    211
    Симпатии:
    65
    Не корректное сравнение (решение квадратного уравнения). Ты сравни обычный Си с Паскалем, а не С++ с Паскалем.

    И вообще это:
    system("pause");
    Дурной тон.
     
  6. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    718
    Симпатии:
    452
    И что тут сложного? Нормально отформатированный код, любо дорого смотреть. Все ясно все понятно.

    А вот тут нагромождения строк, в таком коде не то что разбираться, просто смотреть неприятно.

    В некоторых школах быйсик изучают, а не паскаль. Но это же не повод оглядываться на них
     
  7. Ветеран

    Регистрация:
    26 дек 2014
    Сообщения:
    311
    Симпатии:
    187
    Пол:
    Мужской
    Почему? Автор темы конкретно хотел начать изучать C++, поэтому пример именно на нем

    Программа взята из интернета, так что...

    Не, ну если Вы знаете и разбираетесь в синтаксисе - то да, конечно ничего сложного. Но если человек только-только начинает, то, по-моему мнению, лучше начать с языков, у который синтаксис проще (паскаль, питон), а уже только потом переходить к профессиональным.

    А какие языки изучают в институте? Просто любопытно узнать)
     
  8. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    718
    Симпатии:
    452
    Timick, В паскале вместо begin/end ставим скобки, и вуаля, получаем почти что Си.

    Да что уж мелочиться то, давай начнем изучать с bat файлов, проще некуда.
    З.Ы. Я бы не сказал что у питона такой простой синтаксис
     
  9. Ветеран

    Регистрация:
    6 фев 2012
    Сообщения:
    33
    Симпатии:
    3
    Кстати, если вам не трудно, подскажите хороший учебник по срр.
     
  10. Ветеран

    Регистрация:
    22 авг 2012
    Сообщения:
    62
    Симпатии:
    13
    Пол:
    Мужской
    Выучишь с++, на остальные языки перепрыгнуть будет проще..После c++ прыгаешь на C# - а там и Java не далеко и прочие ништяки.
    Синтаксис не такой уж плохой...плохо в с++ только winapi. Как по мне если разрабатываешь ещё и интерфейс..код становится абсолютно нечитаемым и немногим противным..;)
    Не знаю..разрешены ли ссылки тут..но я как-то по чуть-чуть читал отсюда
    https://tproger.ru/books/cpp-books-definitive-guide/
    Если боишься, что с++ не осилишь...пробуй C#, Java они более дружелюбны в плане кода и понятности...Если плохо с английским тогда лучше C#. На него почти вся документация на русском и почти на любой вопрос можно найти решение.

    Ещё раз повторюсь..знаешь с++ - будешь знать на подсознательном уровне почти все с-подобные языки..
     
    Kent нравится это.
  11. Ветеран

    Регистрация:
    6 фев 2012
    Сообщения:
    33
    Симпатии:
    3
    Loner,
    Спасибо, с английским у меня все "вери гуд" так-что буду учить ++
     
  12. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    718
    Симпатии:
    452
    Ну, есть еще борланд со своей хренью, там с gui вообще никаких проблем нету.
     

Поделиться этой страницей