Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..
Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
38 Задача: Угадай случайное число ( Python )
Visual Basic
Примеры
Игра — угадай число
Наверное каждый, кто хочет научиться программировать мечтает написать свою игру. С графикой, с 3d, со звуком и все такое. В этой статье мы с вами напишем игру, без всего этого, но зато с четкой логикой и достаточной увлекательностью.
Шаг №1 — Постановка задачи
Что же должна делать эта программа, иначе говоря, какова же цель игры ? Она состоит в том, что компьютер загадывает число от 1 до 100, вы должны его угадать, вводя число в текстовое поле, а копьютер должен говорить, больше это число чем загаданное, или меньше и вести счет попыткам.Если же вы угадаете число то компьютер должен сказать вам об этом и сказать, за сколько попыток вы выиграли.
Шаг №2 — Визуальное проектирование
Вторым шагом будет визуальное проектирование программы.На форме должны быть такие элементы :
Кнопка(Button)-с Caption’oм — Загадать и Name — Command1
Кнопка(Button)-с Caption’oм — Проверить и Name — Command2
Кнопка(Button)-с Caption’oм — Выход и Name — Command3
Текстовое поле (TextBox) — без текста и Name — Text1
В результате должно получиться вот так :
Все, с визуальным проектированием покончено.
Шаг №3 — Программирование в коде
Дальше идет самое интересное, но и самое сложное место в нашей программе — программирование в коде.
Войдите в раздел глобальных объявлений и напишите там :
Option Explicit — объявляем переменные
Dim a as Integer — Объявляем числовую переменную a — эта переменная будет числом которое загадает компьютер.
Dim b as Integer — Объявляем числовую переменную zc — эта переменная будет числом которое введет пользователь.
Парадокс Монти Холла | Двадцать одно. 2008. Момент из фильма [1080p]
Dim c as Integer — Объявляем числовую переменную c — это будет число попыток
Теперь войдите в код кнопки Загадать и напишите там :
Randomize Timer — это выражение нужно для того , чтобы включить генератор случайных чисел. Вы можете его не писать, но тогда числа будут не совсем случайными. То есть при каждом запуске программы это будет хоть и случайное , но одно и тоже число.
a = Int(Rnd*100) — Переменная а равна целому числу от 1 до 100 (Int -целое, Rnd*100-от 1 до 100)
MsgBox «Число от 1 до 100 загаданно»,vbExclamation,»Готово» -Выдаем сообщение с заголовком -«Готово», текстом -«Число от 1 до 100 загаданно», и значком с восклицательным знаком.
А теперь войдите в код кнопки Проверить и напишите там :
If a=0 then Msgbox «Сначала нужно загадать число»,vbCritical,»Ошибка» : Exit Sub — Если загаданное число равно 0, то есть оно не загаданно, то выдаем сообщение об этом и выходим из процедуры ( то есть дальнейший код не выполняется)
If Not IsNumeric (Text1.Text) Then — если параметр Text элемента Text1 не число, то .
Msgbox «Это не число»,vbCritical,»Ошибка» -. Выдаем сообщение об этом
Exit Sub — Выходим из процедуры
Else — Иначе, то есть если параметр Text элемента Text1 число, то .
b=Text1.Text — Переменная b равна параметру Text элемента Text1
If b>100 or b — если переменная b больше 100 или меньше 1 то выдать сообщение об этом и выйти из процедуры.
If a>b then msgbox «Загаданное число больше» : c=c+1 — если переменная a (загаданное число) больше переменной b (введенное число) то сообщить об этом и к переменной c (число попыток) прибавить 1.
If a — если переменная a (загаданное число) меньше переменной b (введенное число) то сообщить об этом и к переменной c (число попыток) прибавить 1.
If a=b then Msgbox «Вы угадали число за «+Str(c+1)+ » попыток» ,vbExclamation,»Победа»:c=0:a=0 — Если переменная а равна переменной b то сообщить об этом , обнулить число попыток, обнулить загаданное число.С+1 здесь сделано потому, что отсчет числа попыток начинается не с одного, а с нуля)
End if — Закончить условие которое началось в строке «If Not IsNumeric. «
Ну и в код кнопки выход впишите :
В результате всего этого у вас должна получится вот такая программа :
Option Explicit
Dim a As Integer
Dim b As Integer
Dim c As Integer
Private Sub Command1_Click()
Randomize Timer
a = Int(Rnd * 100)
MsgBox «Число от 1 до 100 загаданно», vbExclamation, «Готово»
End Sub
Private Sub Command2_Click()
If a = 0 Then MsgBox «Сначала загадайте число», vbCritical, «Ошибка»: Exit Sub
If Not IsNumeric(Text1.Text) Then
MsgBox «Это не число», vbCritical, «Ошибка»
Exit Sub
Else
b = Text1.Text
If b > a Then MsgBox «Загаданное число меньше», vbInformation, «Нет»: c = c + 1
If b < a Then MsgBox «Загаданное число больше», vbInformation, «Нет»: c = c + 1
If b = a Then MsgBox «Ура.Вы угадали число за » + Str(c+1) + » попыток», vbExclamation, «Победа!»: a = 0: c = 0
End If
End Sub
Private Sub Command3_Click()
End
End Sub
Шаг №4 — Подведение итогов
Проверьте программу. Попробуйте выиграть. Ну как , нравиться ? Если у вас все получилось то поздравляю — вы можете с гордостью говорить друзьям, что написали игру.Если же что — то не работает то можете попробовать разобраться в исходниках.
Источник: programm.ws
Как угадать число от 0 до 100 или математический фокус
Интересный математический фокус, который только на первый взгляд может показаться сложным, но на самом деле это не так!
Условие:
- Необходимо загадать любое число от 0 до 100.
- Перед вами появляется целое число, выданное программой и соответствующее диапазону.
- Вам необходимо указать – предложенное число больше, меньше или равно тому, что вы загадали.
- Если программа не угадала – она продолжит предлагать числа.
- Менее чем за 7 попыток искомое число программа все же сгенерирует.
Решение.
Для получения ответа достаточно просто воспользоваться алгоритмом бинарного поиска. То есть, чтобы найти искомое число, следует каждый раз осуществлять деление оставшегося диапазона на 2. Тем самым мы сокращаем объем поиска при каждом проведении действия. Вот и все – правильный ответ всегда будет найден.
Например, первым программа предложит число 50, мы выбираем один из возможных диапазонов, больше 50 – 51-100 или меньше 0-49. Если вариант меньше – следующим числом скорее всего будет 25. Действия будут повторяться, и искомое число наконец найдется.
Согласно законам математики, при делении числа 100 на 2 в течение 7 раз – результат будет порядка 1.
Но так как 2 в седьмой степени – это 128, диапазон может быть увеличен и иметь вид от 1 до 128 или от 0 до 127. А при увеличении возможных попыток, например, до 8, диапазон также может вырасти до 256 и так далее.
Больше интересных новостей
Найдите ошибку в коде
Задача о бабушке, которая решила продавать домашний изюм
Сумеете подобрать пароль? Задача на логику!
Задача на логику про туриста на озере
Комментарии (1)
Томеус 03 мая 2023 в 09:24
Источник: itproger.com
Угадай число от 1 до 100
Предполагается, что программа принимает целое число от пользователя и угадывает, что это целое число использует бинарный поиск.
user_num = (int(input(«Please think of a number between 0 and 100! «))) low = 0 high = 100 ans = (high + low)//2 while True: print(«is your secret number » + str(ans)) check_ans = input(«»»enter ‘h’ to indicate if the guess is too high. enter ‘l’ to indicate if the guess is too low. enter ‘c’ if I guessed correctly.»»») if check_ans == ‘h’: high = ans//2 ans = high elif check_ans == ‘l’: low = ans*2 ans = low elif check_ans == ‘c’ and check_ans == user_num: print(«Game over. Your secret number was: » + str(ans)) break else: print(«I do not understand your command»)
Я считаю, что проблема, с которой я сталкиваюсь, происходит в цикле while. Мне нужна программа, чтобы знать, когда остановиться, когда она достигнет порога. Скажем, если мое целое число равно 34, как только я нажму «h» в качестве ввода, оно упадет до 25. Теперь, если я нажму «l», оно вернется к 50.
Наверное, мой вопрос: как мне обновить переменную ans, чтобы программа знала, что она находится в этом диапазоне?
user7100794 27 янв ’18 в 00:32 2018-01-27 00:32
2018-01-27 00:32
2 ответа
Давай пройдемся по твоим условиям. Что мы хотим сделать, это переопределить low а также high на основании ответа, полученного программой.
if check_ans == ‘h’: # We know that ans is lower, so we set our higher bound to slightly below ans high = ans — 1 elif check_ans == ‘l’: # We know that ans is higher, so we set our lower bound to slightly above ans low = ans + 1
Тогда в начале вашего цикла вы хотите получить ans на основе интервала, делая ans = (high + low)//2 ,
В целом это дает
user_num = (int(input(«Please think of a number between 0 and 100! «))) low = 0 high = 100 while True: ans = (high + low)//2 print(«is your secret number » + str(ans)) check_ans = input(«»» enter ‘h’ to indicate if the guess is too high. enter ‘l’ to indicate if the guess is too low. enter ‘c’ if I guessed correctly.»»») if check_ans == ‘h’: high = ans — 1 elif check_ans == ‘l’: low = ans + 1 elif check_ans == ‘c’ and check_ans == user_num: print(«Game over. Your secret number was: » + str(ans)) break else: print(«I do not understand your command»)
Источник: stackru.com