Что делает программа
Перейти к содержимому

Что делает программа

  • автор:

Что делает программа?

Нужно обьяснить, что он делает. Я насколько понял у нас есть масив из char , програма бежит по масиву и если биты этого чара содержаться в MASK то RES увеличиваем на 1. Но у меня printf() показывает всегда 0. Я так понимаю, что либо есть ошибка в коде либо программа делает не то, что я думаю

Отслеживать
задан 22 фев 2020 в 19:26
10.9k 17 17 золотых знаков 62 62 серебряных знака 127 127 бронзовых знаков
0 — правильно показывает, такая битовая маска нигде не встречается.
22 фев 2020 в 19:39

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

if ((A[I] & MASK) == MASK) это контроль указанных битов. В вашем случае MASK 0x15 указывает на три бита 10101 . Если в данных эти биты присутствуют, то результатом будет сама маска, а если один из этих битов равен нулю, то результат будет не равен маске.

Например ‘a’ == 97 == 0x61 == 1100001. Маска 10101 даст результат 00001. То есть один бит правильный, а два других нет.

Зачем у вас такая маска не знаю. Я бы считал количество маленьких букв с помощью маски 0x20.

Отслеживать
ответ дан 22 фев 2020 в 20:25
17.1k 1 1 золотой знак 9 9 серебряных знаков 33 33 бронзовых знака

Ну в целом, то что делает программа я описал в вопросе и вы это подтвердили, но меня насторожило, что дали такой вопрос а его вывод 0. Но мне понравилось ваше предпложение, может программа действительно должна считать маленькие буквы и ошибка в маске.

23 фев 2020 в 10:44

В вашем коде, описание функции printf , содержится в заголовочном файле stdio.h , так как ввод-вывод не является встроенной возможностью C, то для использования printf вы обязаны подключить файл stdio.h .
Но это пол беды, в коде вы проверяете: (A[I] && MASK) == MASK , это означает, что сначала мы производим операцию И над элементом массива и маской, после чего сравниваем результат со значением маски, из этого следует что инкрементирование счётчика произойдёт только если значение элемента массива равно 21 (0x15), так что программа работает верно.

Отслеживать
ответ дан 22 фев 2020 в 19:33
781 4 4 серебряных знака 17 17 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Что делает программа? s = input()
b = list(s)
f = min(b)
print(f)

pavelTJC

Программа на Python как я понял
s = input() — вводишь любое n-значное число (не однозначное, ибо смысла нет)
b = list(s) — преобразует выше описаное число в список.
Например:
s=input(123)
b=list(s)
// [‘1’, ‘2’, ‘3’]
f =min(b) — ищет из этого списка Минимальное значение и сохраняет в переменную f
print(f) — выводит минимальное значение

Новые вопросы в Информатика

які об‘єкти табличного процесора Excel ви знаєте? які їх властивості

Введи оценку (0 — остановить ввод): >>> 5 Введи балл (0 — остановить ввод): >>> 4 Введи балл (0 — остановить ввод): >>> 2 В … веди балл (0 — остановить ввод): >>> 3 Введи балл (0 — остановить ввод): >>> 0 Список оценок: [5, 4, 2, 3] Успеваемость: 75.0

Перевисти число 69 у двійкову систему числення
по 16-ричной форме восстановите число C5ED0000, 47B7A000 СРОЧНО ДАМ 100 БАЛЛОВ​

1) Определи мощность алфавита, если информационный вес одного символа равен 6 бит Ответ: 2) На компьютере напечатали сообщение, состоящее из 40 символ … ов. Определи информационный объём сообщения в байтах. помогите пжж​

Mingiyan / Solution.java

Обратный отсчет 1. Разберись, что делает программа. 2. Реализуй логику метода printCountdown так, чтобы каждые полсекунды выводился объект из переменной list в обратном порядке — от переданного индекса до нуля. Пример: Передан индекс 3 Пример вывода в консоль: Строка 2 Строка 1 Строка 0

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package com . javarush . test . level16 . lesson07 . task04 ;
import java . util . ArrayList ;
import java . util . List ;
/* Обратный отсчет
1. Разберись, что делает программа.
2. Реализуй логику метода printCountdown так, чтобы каждые полсекунды выводился объект из
переменной list в обратном порядке — от переданного индекса до нуля.
Пример: Передан индекс 3
Пример вывода в консоль:
Строка 2
Строка 1
Строка 0
*/
public class Solution
public static volatile List < String >list = new ArrayList < String >( 5 );
static
for ( int i = 0 ; i < 5 ; i ++)
list . add ( «Строка » + i );
>
>
public static void main ( String [] args ) throws InterruptedException
Thread t = new Thread ( new Countdown ( 3 ));
t . start ();
>
public static class Countdown implements Runnable
private int countFrom ;
public Countdown ( int countFrom )
this . countFrom = countFrom ;
>
public void run ()
try
while ( countFrom > 0 )
printCountdown ();
countFrom —;
>
> catch ( InterruptedException e )
>
>
public void printCountdown () throws InterruptedException
//add your code here — добавь код тут
Thread . sleep ( 500 );
System . out . println ( list . get ( countFrom — 1 ));
>
>
>

Что делает программа

Основы программирования 2.0

Вернёмся к компьютерам традиционным. То есть к ЭВМ — электронно-вычислительным машинам.

Подробно расписывать принципы загрузки программ в память и их выполнения я не буду. Это описано в книге Как стать программистом.

Здесь вам нужно только понять, что компьютер работает с какими-то данными. И любая программа получает какие-то входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат (выходные данные).

Давайте попробуем добить наш пример с походом за молоком.

Входные данные

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

  1. Деньги из тумбочки
  2. Информация о погоде
Обработка данных
  1. Программа определяет погоду, и тепло одевается, если на улице холодно
  2. Программа идёт в магазин
  3. Программа меняет деньги на молоко
  4. Программа возвращается домой
Выходные данные
  1. Молоко
  2. Сдача в тумбочке

Важный вывод, который вы должны понять и запомнить:

Программа получает входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат.

Разумеется, данные — это понятие растяжимое. Вот с этим растяжимым понятием мы и будем разбираться в следующих статьях.

Домашнее задание:
Возьмите алгоритмы, которые вы составили в предыдущем уроке, и попробуйте выделить в них три блока: входные данные, обработчик данных, выходные данные.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *