Программирование на Си - Урок 5 - ввод с клавиатуры scanf, пишем калькулятор

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ก.ย. 2024
  • Это видео для тех, кто еще ни разу не программировал, но прошел предыдущие 4 урока.
    Будет рассмотрен ввод с клавиатуры при помощи scanf после чего мы напишем простой калькулятор.
    В конце урока новое домашнее задание.
    Плей лист - • Программирование на Си...

ความคิดเห็น • 64

  • @erlanchkalov
    @erlanchkalov 3 ปีที่แล้ว +36

    Мои уши ощутили кайф от этого звука потому что если вспомнить какой звук был в прошлых видео :DDD

  • @telebumba4348
    @telebumba4348 ปีที่แล้ว +5

    Спасибо, что вы есть!
    Очень понятные уроки, нигде не могла найти ничего подобного, ничего не понимала, только с вашими видео себя человеком почувствовала ! 💫💖

  • @wizarty_boom
    @wizarty_boom หลายเดือนก่อน

    Это лучший урок который видел, без воды, все понятно

  • @andreweremeew1577
    @andreweremeew1577 2 ปีที่แล้ว +18

    Топовый канал, автору респект с 1-го курса 👍

  • @geoleb8106
    @geoleb8106 2 ปีที่แล้ว +6

    какие хорошие у тебя однако переменные: int x, y; и ещё int i;. Просто загляденье : - )

  • @ВладимирРемизов-о2к
    @ВладимирРемизов-о2к ปีที่แล้ว

    Как же не хватает в самом начале фразы : " Меня зовут всё ещё Антон!". Молодец Антоха. Никого не слушай, дави тему дальше.

  • @alexanderkarpov3696
    @alexanderkarpov3696 2 หลายเดือนก่อน

    Зашел на видео, увидел название калькулятор и подумал,а я сейчас сам его без видео захреначу. Спустя пол дня дело было готово, калькулятор работает от одного ввода строки. Посмотрев видео я понял что сделал все лучше и научился большему

  • @Ilya1510
    @Ilya1510 4 ปีที่แล้ว +11

    классные уроки

  • @НиколаЛепихин
    @НиколаЛепихин 4 ปีที่แล้ว +6

    От пенсионеров привет и большое спасибо

    • @supjointplayer
      @supjointplayer 3 ปีที่แล้ว

      И от тупых школотронов :-)

    • @quadroninja2708
      @quadroninja2708 3 ปีที่แล้ว +2

      С - язык ветеранов)

  • @AibekDandaev
    @AibekDandaev 2 ปีที่แล้ว

    ооо
    каеф
    такой контраст на фоне первых видео)
    звук потрясающий)

  • @antaressystem7306
    @antaressystem7306 2 ปีที่แล้ว

    о, микрофон поменял)) ну наконец-то

  • @fidius-jko
    @fidius-jko 2 ปีที่แล้ว +4

    Если не работает scanf то используйте scanf_s

  • @EugenySubbotin
    @EugenySubbotin 2 ปีที่แล้ว +7

    крутой проект! тут бы автору еще листинги выкладывать с комментариями в некоторых строках... А уроки - супер! Если кому и непонятно, то это значит, что надо по второму и третьему разу смотреть - просто еще не "врубились" в тему. На самом деле все так просто, что проще уже некуда - то, что для новичков можно начинать практиковать! Автор - молодец!

  • @iuriigorbaniuk6597
    @iuriigorbaniuk6597 2 ปีที่แล้ว +1

    Детишкам такого же уровня наверное пригодится!
    Мама , я на кнопки вместе с Антоном нажимаю - я программист?)
    Чел , покажи детям что такое типы данных !!!

  • @MarvinTrying
    @MarvinTrying 11 หลายเดือนก่อน

    а что делать если у меня правильно стоит скобка верхняя которая объединяет комманды но у меня показывает ошибку я сам программирую в replit но у меня нету компьютера

  • @calmeulya
    @calmeulya 2 ปีที่แล้ว

    после операции выбора на экране результат не высчитывает, программа идентична

  • @nazarii_9.0
    @nazarii_9.0 3 ปีที่แล้ว

    А где урок с проверкой введеного неверного значения пользователем?

  • @guestwin1147
    @guestwin1147 2 ปีที่แล้ว +6

    #include
    int main(void) {
    float num1, num2;
    int operation;
    printf("Калькулятор v0.0.3
    ");
    printf("Введите первое число, второе число, затем операцию
    ");
    printf("Первое число: ");
    scanf("%f", &num1);
    printf("Второе число: ");
    scanf("%f", &num2);
    printf("Какую операцию?
    ");
    printf(" 1.Суммировать
    ");
    printf(" 2.Вычесть
    ");
    printf(" 3.Умножить
    ");
    printf(" 4.Разделить
    ");
    printf("Твой выбор: ");
    scanf("%d", &operation);
    if (operation == 1){
    printf("%f + %f = %f", num1, num2, num1+num2);
    } else if (operation == 2){
    printf("%f - %f = %f", num1, num2, num1-num2);
    } else if (operation == 3){
    printf("%f * %f = %f", num1, num2, num1*num2);
    } else if (operation == 4){
    printf("%f / %f = %f", num1, num2, num1/num2);
    } else{
    printf("Была выбрана несуществующая операция...");
    }
    return 0;
    }

  • @МихаилСтариков-т9ч
    @МихаилСтариков-т9ч 2 ปีที่แล้ว +3

    Антон, у гуманитариев после слова АДРЕС взрывается МОЗГ, а после слова УКАЗАТЕЛЬ - им хочется написать философскую книгу и тихо отойти от дел.

  • @ТимофейТихомиров-х6и
    @ТимофейТихомиров-х6и 4 ปีที่แล้ว

    Как сделать так, чтобы программа запоминала число после действия, потом его использовать?

  • @kavelquu
    @kavelquu 4 ปีที่แล้ว +2

    я ввожу два числа, и консоль сразу закрывается, код точь в точь такой же
    upd: Решено, забыл что в си тоже есть system("pause");

    • @ghebodne2644
      @ghebodne2644 2 ปีที่แล้ว

      Прочитал первую часть предложения, а потом посмотрел на аву 😅

    • @kavelquu
      @kavelquu 2 ปีที่แล้ว +1

      @@ghebodne2644 ахахахах

  • @ДмитрийГендаринко
    @ДмитрийГендаринко 3 ปีที่แล้ว

    я что-то непонял функция scanf(something) ; кроме того что позволяет воодить какое-то значение, она ищё может заставлять программу зависать на себе как циклы(do-while, while, for? Непонятно. А так спасибо огромное за уроки и ваши старания =)

  • @Bezdarnyi_Master
    @Bezdarnyi_Master 2 ปีที่แล้ว

    подскажите, почему у меня не срабатывает scanf("%c", &s)? В проверке (закомментирована) всё отрабатывает, в коде- нет!
    #include
    #include
    int main(){
    int a, b;
    char s;
    /*int a=3, b=9;
    char s;
    scanf("%c", &s);
    if(s=='*')
    printf("%d %c %d = %d", a, s, b, a*b);*/
    printf("vvedi pervoe chislo: ");
    scanf("%d", &a);
    printf("operaciya: ");
    scanf("%c", &s);
    printf("vvedi vtoroe chislo: ");
    scanf("%d", &b);
    if(s=='*')
    printf("%d %c %d = %d", a, s, b, a*b);
    if(s=='/')
    printf("%d %c %d = %d", a, s, b, a/b);
    if(s=='+')
    printf("%d %c %d = %d", a, s, b, a+b);
    if(s=='-')
    printf("%d %c %d = %d", a, s, b, a-b);
    }

    • @ravilfarhutdinov5470
      @ravilfarhutdinov5470 7 หลายเดือนก่อน

      printf("operaciya: ");
      scanf("%c", &s);
      Ты поместил это выражение между введением первого и второго числа. А нужно делать его самым последним, то есть после введения второго числа.
      в scanf, при вводе спецификатора типа, лучше вводить его не сразу, а после пробела. То есть не так - scanf("%c", &s);
      а так - scanf(" %c", &s);

  • @weekendshow7567
    @weekendshow7567 3 ปีที่แล้ว +1

    не объяснил что означает строка команды printf("oper:
    1 = *
    2 = +
    select code = ");

    • @beginend95
      @beginend95  3 ปีที่แล้ว

      так в 1 и 4 уроках проходили же)

    • @weekendshow7567
      @weekendshow7567 3 ปีที่แล้ว

      @@beginend95 ок, я просмотрю ещё раз.

    • @beginend95
      @beginend95  3 ปีที่แล้ว

      @@weekendshow7567 Тут просто вывод текста, об этом в 1 уроке. Про
      в 4-ом.

    • @weekendshow7567
      @weekendshow7567 3 ปีที่แล้ว

      @@beginend95 ок в 4-ом уроке посмотрю

  • @harutgh5203
    @harutgh5203 3 ปีที่แล้ว +3

    объясни к что это такое printf("oper:
    1 = *
    2 = +
    select code = "); ??????????????????????

    • @ravilfarhutdinov5470
      @ravilfarhutdinov5470 7 หลายเดือนก่อน

      Это текст, который информирует нас о том какие варианты операций (oper) мы можем сделать.

      1 = слэш+n здесь для того, чтобы перенести текст на новую строку. В тексте отобразится только цифра 1 как первый вариант предлагающий нам умножение. То есть 1 = *.
      Затем пишется
      для переноса на новую строку и текст 2 = +.
      Select code это просьба выбрать предпочтительный нами код.

  • @yuradowgan5703
    @yuradowgan5703 ปีที่แล้ว

    Что делать если после просмотра все равно ничево не понимаешь

    • @ravilfarhutdinov5470
      @ravilfarhutdinov5470 7 หลายเดือนก่อน

      Смотреть, пока не дойдёт.

  • @ПавлоКондур
    @ПавлоКондур 3 ปีที่แล้ว

    Правильна програма :
    int x , y ;
    int i ;
    printf("input x =");
    scanf("%d",&x);
    printf("input y =");
    scanf("%d",&y);
    printf("opper:
    1 = *
    2 = +
    3 = /
    4 = -
    select code=
    ");
    scanf("%d",&i);
    if(i == 1){
    printf("%d * %d = %d",x,y,x * y);
    }
    else if(i == 2){
    printf("%d + %d = %d",x,y,x + y);
    }
    else if(i == 3){
    printf("%d / %d = %d",x,y,x / y);
    }
    else if(i == 4){
    printf("%d - %d = %d",x,y,x - y);
    }
    return 0;

    • @pepzzey9143
      @pepzzey9143 2 ปีที่แล้ว

      пытаюсь так-же работать с else, не выходит.

  • @evgeniysmirnov4574
    @evgeniysmirnov4574 4 ปีที่แล้ว

    у меня выводит в консоль все операции одна за другой(5*6=305+6=11 и так далее),то есть нет перевода строки где ошибка?

    • @beginend95
      @beginend95  4 ปีที่แล้ว +4

      У меня не хватает магической силы, чтобы открыть твой код удаленно) Возможно ты где-то забыл
      - это как раз перевод строки.

    • @evgeniysmirnov4574
      @evgeniysmirnov4574 4 ปีที่แล้ว +1

      @@beginend95 магически визуализирую код:printf("oper:
      1=*
      2=+
      3=/
      4=--
      select code=");
      и выводит такое:2*3=62+3=52/3=0.666672-3=--1 причем происходит когда ввожу в select лабую цифру от 1 до 4

    • @evgeniysmirnov4574
      @evgeniysmirnov4574 4 ปีที่แล้ว +1

      хмм, нашел ошибку -- оказывается поставил точку с запятой после оператора сравнения, только теперь все операции показывают ноль, ищу дальше

    • @beginend95
      @beginend95  4 ปีที่แล้ว +1

      @@evgeniysmirnov4574 Попробуй убрать из кода все лишнее, оставь только самое простое. Так легче найти ошибку. Потом вернешь все назад.

    • @r00fer15
      @r00fer15 2 ปีที่แล้ว

      @@evgeniysmirnov4574 нашел ошибку?

  • @Arshehremen
    @Arshehremen 5 ปีที่แล้ว +1

    можно было бы вместо 1,2 для операций вводить стринги "+" и "*"

    • @beginend95
      @beginend95  5 ปีที่แล้ว +2

      мы еще не знаем что это такое) Смотри следующие видео, все будет)

  • @StellarHarbor
    @StellarHarbor 2 ปีที่แล้ว

    Надо было сразу указатели и ссылки объяснять, так не пойдёт

  • @sunmaxplay6491
    @sunmaxplay6491 3 ปีที่แล้ว

    Подсказочка для тех кто не сомг решить 2 задачу воть весь кодь писал упрощенно потому что у меня на данный момент 2 03 ночи
    float x, y, i;
    printf("x = > ");
    scanf("%g", &x);
    printf("iter 1 - +, 2 - '-', 3 - *, 4 - / = > ");
    scanf("%g", &i);
    printf("y = > ");
    scanf("%g", &y);
    if (i == 1) {
    printf("%g + %g = %g", x, y, x+y);
    return x+y;
    }
    else if (i == 2) {
    printf("%g - %g = %g", x, y, x-y);
    return x/y;
    }
    else if (i == 3) {
    printf("%g * %g = %g", x, y, x*y);
    return x*y;
    }
    else {
    printf("%g / %g = %g", x, y, x/y);
    return x/y;
    }

    • @qwesal
      @qwesal ปีที่แล้ว

      объяснил бы лучше как первую задачку делать :((
      думал достаточно будет int на float заменить, но нет

  • @ВикторРезнов-х3е
    @ВикторРезнов-х3е 2 ปีที่แล้ว

    Полный отстой! Автор тараторит, будто пытается обогнать собственную мысль, не давая возможность обдумать сказанное им самим и ввести значения. Куча терминов и новых символов, которые оставляются для объяснения "на потом". Кошмар

    • @qwesal
      @qwesal ปีที่แล้ว

      кнопку паузы жми

    • @elysiumstation
      @elysiumstation ปีที่แล้ว

      лучше не ной а заново смотри, хотя ты уже забросил это дело, я знаю

  • @sergewhynot7306
    @sergewhynot7306 4 ปีที่แล้ว +2

    Здесь у тебя в уроке второй if это подсказка к ДЗ?
    if(i==1)
    printf("%d * %d = %d
    ", a,b,a*b);
    else
    printf("%d + %d = %d
    ", a,b,a+b);

    • @beginend95
      @beginend95  4 ปีที่แล้ว +2

      можно и так сказать)

  • @ravilfarhutdinov5470
    @ravilfarhutdinov5470 7 หลายเดือนก่อน

    Звук)))

  • @technimatic1000
    @technimatic1000 3 ปีที่แล้ว +1

    Примерно так же нам преподавали математику в школе: ту так пишем, тут так.. а что и зачем не понятно

    • @beginend95
      @beginend95  3 ปีที่แล้ว +1

      Что именно непонятно?

  • @ВладимирГаврилюк-м7х
    @ВладимирГаврилюк-м7х 2 ปีที่แล้ว

    Продолжаю учиться.

  • @life_xypma
    @life_xypma ปีที่แล้ว +1

    Что-то как-то «прорвало» объем написанного