Архив рубрики: Программирование
Язык Си: выборы большинством голосов
Начинается третья неделя обучения Computer Science CS50 (Гарвард) и мы продолжаем учить язык C. Первое задание: реализация системы голосования, где выигрывает кандидат, получившей наибольшее количество голосов, т.н. мажоритарная система по большинству или просто «победитель получает все» (plurality.c). Пользователь может выбрать … Читать далее
Язык Си: игра «Эрудит» с другом
На второй неделе обучения по курсу Computer Science CS50 (Harvard) после выполнения всех индивидуальных заданий мы переходим к лабораторной работе по языку C, которую нужно выполнять в группе. Это будет интересная задача — написать код игры «Эрудит» (Scrabble.с). Суть задания: … Читать далее
Язык Си: продвинутое шифрование по-цезарски
Продолжаем выполнять домашние задания из Problem set 2 в курсе Computer science CS50 (Harvard). В прошлый раз мы научились шифровать текст сдвигом букв на некое число (ключ), введенный пользователем. А в этот раз решим задачу посложнее, это будет программа Substitution.c … Читать далее
Язык Си: шифрование текста Цезаря
Продолжаем делать домашние задания по курсу Computer science CS50 (Harvard), и в этот раз нужно написать код программы и зашифровать текстовое послание. Суть задания ceasar.c заключается в том, чтобы программа запрашивала ввод текста пользователя, а затем выводила ниже строку текста … Читать далее
Язык Си: расчет уровня сложности текста по индексу Колман-Лиау
Продолжаем проходить курс Computer Science CS50 (Harvard), и в этот раз будем делать задание на расчет уровня сложности текста по индексу Колман-Лиау (readability.c) на языке программирования C. Согласно идее двух авторов метода, можно оценить сложность текста и таким образом распределить … Читать далее
Язык Си: проверка номера кредитной карты по алгоритму Луна
В курсе cs50 (Гарвард) есть задача по программированию на Си по выявлению правильности номера кредитной карты через алгоритм Луна (credit.c). Разберем эту задачку и покажем два варианта еще решения. Итак. На любой кредитке напечатан номер, который также хранится в базе … Читать далее
Язык Си: сколько монет дает кассир
Изучая жадные алгоритмы (Greedy Algorithms) на языке программирования C в CS50 (Гарвард), давайте решим задачу про монеты (Cash.c). Допустим, что вам нужно дать сдачу покупателю в магазине и вы хотите свести к минимуму количество монет, которые вы выдаете каждому покупателю. … Читать далее
Язык Си: рисуем пирамидку из Mario
Любопытная задачка для новичков из CS50 (Гарвард). Задача: нарисовать пирамидку из игры Марио (mario-less.c) при помощи символов # (решетка или хэш). Пользователя спрашивают: «Из скольких блоков сделать пирамиду?», он вводит число и пирамидка рисуется, с выравниванием по правому краю, вот … Читать далее
Язык C: примеры неявного преобразования типов
Одна из самых жестких вещей в языке C— это неявное преобразование типов. Если вы не будете следить за этим — у вас будут большие проблемы. Попробуйте запустить этот код, чтобы узреть возможные траблы: #include <stdio.h> int main (void) { int … Читать далее
[Язык C] Арифметические прогрессии и MMORPG
Я заядлый игрок в MMORPG и для меня изучение программирования становится намного веселее и интереснее, если у написанных программ есть какая-то привязка к играм. Это особенно важно, если речь идет о каких-то абстрактных математических вещах, которые мне (гуманитарию) весьма непросто воспринимать. … Читать далее
PHP: простой запрос к базе данных MySQL, форма и кнопка
Начало работы с базами данных на PHP может показаться довольно сложным делом, если сразу пытаться «съесть слона» и делать слишком сложные запросы. Начнем с самого базового простого запроса к базе данных, чтобы понять общий принцип. Рабочий код, который можно скопировать, … Читать далее
[Язык C] Приоритет операций
Как мне кажется, более удачно отформатировал приоритеты операций K&R: → ( ) [ ] -> . ← ! ~ ++ – – + – * & (type) sizeof → * / % → + — → << >> … Читать далее
Python ООП — объектно-ориентированное программирование
Продолжаем практиковаться в программировании. После восьмой главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила принципы ООП и программные объекты / классы, пора переходить к практике. Сделаем … Читать далее
Как переименовать расширение файла в Python
Задача: в папке лежит файл с расширением .raw и мне нужно переименовать этот файл на такой же, но с другим расширением .txt — как это делать? Решение: Нужно импортировать модуль os, у которого есть методы os.path.splitext() и os.rename(). Методом os.path.splitext() … Читать далее
[Язык C] Функция memcpy ()
Помню, что когда я увидел первый раз в коде функцию memcpy () — не понял, что это за неведомая зверушка. Никто и думать не думал написать комментарий, который ее объясняет (не, ну потом понимаешь, что эт логично.. не писать же … Читать далее
Python: Задачи и решения (Глава 7. Файлы и исключения. Игра «Викторина»)
Продолжаем практиковаться в программировании. После седьмой главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила работу с файлами, пора переходить к практике. Сделаем домашнее задание вместе! Краткий … Читать далее
Ошибка Python: inconsistent use of tabs and spaces in indentation
При запуске кода возникает ошибка синтаксиса— inconsistent use of tabs and spaces in indentation. Что это означает и как решить эту проблему? Дело в том, что python следит за соблюдением единообразия в использовании пробелов, которые показывают отступы частей кода. Если … Читать далее