[Язык C] Коварные символы новой строки на вводе

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

Проблема в том, что когда вы вводите с клавиатуры в scanf любой ввод – помимо символов (букв, цифр и проч) – вы также _всегда_ отправляете во входящий поток символ /n – то бишь перевод строки.

К примеру, в программе стоит оператор scanf ("%c", &n);

Вы нажимаете на клавиатуре клавишу q, а затем клавишу Enter, чтобы отправить значение в программу… Continue reading

Posted in С (Си) | Leave a comment

Python: Задачи и решения (Глава 4. Циклы с оператором for, строки и кортежи. Игра “Анаграммы”).

Продолжаем практиковаться в программировании. После четвертой главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я научилась пользоваться оператором for и создавать кортежи, предложены задания. Давайте делать их вместе. Я приведу свой вариант решения, а вы пишите ваши варианты в комментариях.

1. Напишите программу “Считалка”, которая бы считала по просьбе пользователя. Надо позволить пользователю ввести начало и конец счета, а также интервал между называемыми целыми числами. Continue reading

Posted in Python | Leave a comment

[Язык C] Перенос строки оператора printf

Подзабыл, как правильно “резать” длинные куски printf, поэтому решил написать эту шпаргалку.

Допустим у вас длиннющее выражение printf и нужно его разбить на несколько небольших для удобочитаемости (или чтобы влезало при встраивании на сайт, например). Есть три способа: Continue reading

Posted in С (Си) | Leave a comment

Как ИИ изменит нашу жизнь?

В нашем уютном МАД-дискорде зашла дискуссия за ИИ. Кто-то говорит, что ИИ в относительно скором времени приведет к «технологической сингулярности», кто-то относится к этому скептически. 

Моя позиция где-то посередине. С одной стороны очевидно, что технологический прогресс влияет на нашу повседневную жизнь. Мгновенный доступ к любой информации при помощи интернета кардинально изменил многие сферы деятельности и в первую очередь – процесс обучения (правда, образовательные учреждения к этому еще не адаптировались и учат “по старому”, чем нехило тормозят прогресс цивилизации). Изменения везде – я каждый день хожу в магазин с кассами самообслуживания и мне не надо общаться с раздражительными продавщицами. Под окном стоят несколько каршеринговых авто; и видимо скоро города заполонят машины с автопилотом. Нейросети (которые пока бесконечно далеки от “настоящего ИИ”) играют во многих из этих процессов решающую роль.

С другой стороны – изменит ли нашу жизнь внедрение новых технологий настолько драматически, как считают сторонники теории «технологической сингулярности»?Заменят ли людей машины в большинстве существующих профессий? Буду ли люди потреблять музыку и искусство, которое генерирует ИИ? Continue reading

Posted in Философия и технологии | Leave a comment

[Язык C] Ввод симола в scanf (%d): ошибка бесконечного цикла

При выполнении заданий из седьмой главы, впервые столкнулся с “защемлением цикла“. Допустим пользователь вводит символ q в поле (не делайте так, если у вас нет возможности прервать программу):

#include <stdio.h>
int main (void)
{
int n;
scanf("%d", &n);
while (n > 0)
{
    printf("Enter 0 to quit:\n");
    scanf("%d", &n);
}
getchar();
return 0;
}

Программа застрянет в бесконечном цикле при вводе любого символьного значения. Отчего так? Continue reading

Posted in С (Си) | Leave a comment

[Язык C] Упражнения по программированию (глава 7)

Задания из седьмой главы книжки Стивена Прата “C Primer Plus” —  “Управляющие операторы С: ветвление и переходы“.

1. Напишите программу, которая читает входные данные до тех пор, пока не встретится символ #, а затем отображает количество прочитанных пробелов, количество символов новой строки и количество всех остальных символов. Continue reading

Posted in С (Си) | 3 Comments

Python: циклы for, константы, срезы, кортежи, последовательности len, range, in, choice

Продолжаем учить язык программирования. Переходим к изучению 4 главы по книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где мы изучим циклы с оператором for(), введение констант в код, срезы и кортежи, работу с последовательностями на примере строк с операторами len(), range(), in, jumble() и т.д.

Конспект 4 главы с примерами написанных мной программ:

Циклы for

Мы уже знаем циклы с оператором while, и даже сделали много задач. Помните, там вводится перед циклом управляющая переменная, которая затем используется в условии, которое в свою очередь проверяется на истинность каждый круг цикла. Так вот с циклом for все немного иначе. Continue reading

Posted in Python | Leave a comment

Премодерация на phpBB

Краткий гайд – как включить премодерацию на форуме phpBB. По умолчанию она включена, но обычно ее все отрубают и забывают как включить обратно, когда это нужно (при атаке спамеров, например). Итак:

  1. ОбщиеРегистрация пользователей → там…
      • Лимит сообщений для новых пользователей: ставим 3 (дефолт), хотя можно и поменьше.
      • Установить группу «Новые пользователи» как группу по умолчанию:ДА
  2. Права доступаФорумные права групп → выбираем Новые пользователи → ставим галку Все форумы → на появившемся для каждого форума выбираем роль С предварительным одобрением (не надо жать на кнопки справа! роль выбирается из выпадающего списка). Ставим роли для всех форумов и вуаля!

Не забудьте протестировать на новом аккаунте 🙂

Posted in phpBB | Leave a comment

[Язык C] Управляющие операторы С: ветвление и переходы (глава 7)

Седьмая глава в книжке Стивена Прата “C Primer Plus”. Начать хочу с годной программы divisors.c

Для заданного целого числа нужно вывести все целые числа, на которые заданное число делится без остатка; если таких делителей нет, необходимо вывести сообщение о том, что число является простым.

Простое число (prime) имеет ровно два различных делителя: единицу и самого себя;
Если делителей больше - это составное число (composite).

Первый вариант программы ищем простые числа в лоб, перебором делителей: Continue reading

Posted in С (Си) | Leave a comment

Python: Задачи и решения (Глава 3. Ветвление, циклы с оператором while и псевдокод. Игра “Отгадай число”).

Продолжаем изучать программирование. После третьей главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила особенности работы с текстом в языке программирования Python, предложены задания. Давайте выполнять их вместе. Я приведу свой вариант решения, а вы пишите ваши варианты в комментариях.

1) Напишите программу — симулятор пирожка с «сюрпризом», — которая бы при запуске отображала один из пяти различных «Сюрпризов», выбранный случайным образом. Continue reading

Posted in Python | Leave a comment