Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [4] 5 6 7   Вниз
  Печать  
Автор Тема: Самое длинное и короткое слово  (Прочитано 154372 раз)
0 Пользователей и 7 Гостей смотрят эту тему.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #90 : 28-12-2009 06:31 » 

|11|error: expected `(' before "char"|
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #91 : 28-12-2009 06:42 » 

Dana, после for (i=7; i>=0; i--);

не надо точку с запятой Улыбаюсь И с if синтаксис
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
char n;
printf("Vvedite chislo: ");

scanf("%i",&n);
for (i=7; i>=0; i--)
{
  if( ((BYTE)n) & 0x80) //гы: if( n<0)
  {
     отрицательное
  }
  else
  {
     положительное
  }
}
return 0;

}
 
Записан

Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #92 : 28-12-2009 06:47 » 

if( ((BYTE)n) & 0x80) //гы: if( n<0)
что это значит?
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #93 : 28-12-2009 06:49 » new

это проверка 7-го бита у байта на единицу. Но для char можно просто n<0 проверить Улыбаюсь
Записан

Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #94 : 28-12-2009 06:50 » 

все равно не компилируется ошибку выдает
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #95 : 28-12-2009 06:56 » 

Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
char n;
printf("Vvedite chislo: ");
scanf("%i",&n);
for (i=7; i>=0; i--)
{if  n<0
{printf("1")
}
{else printf("0")
}
return 0;

}
}

Я походу ничего не понимаю А черт его знает...
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #96 : 28-12-2009 06:59 » 

Если не находит BYTE, то там два варианта, или заменить его на unsigned char, или подключить windows.h. Тем не менее, насколько я понимаю, программа не делает то, что было в задании, имхо, сорри. А сейчас ещё и со скобками как-то совсем плохо...
Записан
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #97 : 28-12-2009 07:00 » 

ввожу число а он мне все 00000000 выдает, то есть бит он мне нат и не выводит
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #98 : 28-12-2009 07:02 » 

Дана, внимательнее к синтаксису:

for (i=7; i>=0; i--)
{if  n<0
{printf("1")
}
{else printf("0")
}


надо так
Код:
for (i=7; i>=0; i--)
{//фигурные скобки для for - всегда полезно

if(n<0) //()-скобки if не пропускай!
{
printf("1")
}
else //else - где у тебя находился оператор ?
{
printf("0")
}
}
Записан

Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #99 : 28-12-2009 07:08 » 

ну я иммела ввиду что если условие не выполняется то выводится "0"
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #100 : 28-12-2009 07:26 » 

Dana у Вас n в программе не изменяется соответствующим образом. Попробуйте модифицировать программу.
Записан
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #101 : 28-12-2009 08:47 » 

алгоритм то не могу написать а модифицировать программу вообще сложно, думаю что где то надо организовать сдвиг? например, char mask = 1 << 7
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #102 : 28-12-2009 08:58 » 

Вам надо, что-бы при помощи счётчика i, как-то вычислять битовую маску, т.е. Вам надо просто модифицировать условие if, что-бы там делали сравнение с маской, которая сдвигается на количество битов, заданное в i. В качестве отдельной переменной маску заводить не обязательно, имхо.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #103 : 28-12-2009 09:03 » 

как раз удобно маску в качестве переменной применить:
Код:
//вывод числа в двоичном виде
BYTE mask=~(((BYTE)-1)>>1); //или просто =0x80, старший бит

char n=...;

for(;mask;mask>>=1)
{
if(n&mask)
{
вывести '1';
}
else
{
вывести '0';
}
}
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #104 : 28-12-2009 16:42 » 

Алексей1153++, lapulya, извините господа - ваше признания я удалю!
Dana'чка продолжай, все  по порядку. Ты просто УМНИЧКА!
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #105 : 29-12-2009 03:52 » 

Вот что преподаватель мне ответил на первое задание (со словами):"Мне не понравилась Ваша блок-схема: она непоследовательная, в ней у открывающего символа цикла почему-то нет закрывающего, и т.д.
ну и про программу тоже".
Вот умеют же люди испортить настроение с самого утра ((
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #106 : 29-12-2009 04:17 » 

Dana, сдать преподу задание - это отдельная задача, уже не из области IT Улыбаюсь Подгони всё так, как ей надо и не порть себе время и нервы
Записан

Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #107 : 29-12-2009 04:48 » 

Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
char n;
printf("Vvedite chislo: ");
scanf("%i",&n);
for (i=7; i>=0; i--)
if ((n & 1)>>i)
{
printf("1");
}

else
{printf("0");
}
return 0;
}

Что то вычисляет но не то что мне надо
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #108 : 29-12-2009 04:50 » 

Придется опять возвращаться к первой задаче..ррр-рррр-р
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #109 : 29-12-2009 04:55 » 

Dana,
Код:
if ((n & 1)>>i)

тут что происходит ? Каждый раз берётся 0-й бит от n и сдвигается на i бит вправо.
То есть, результат всегда будет либо 10000000, либо 00000000,

подумай, что надо переделать в этой строке Улыбаюсь
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #110 : 29-12-2009 05:17 » 

Dana, А я ведь просил тебя - будь последовательной.
Цитата
Мне надо составить неформализиванный алгоритм
Потом блок схему со словами
потом блок схему ориентрованную на СИ
а уже затем программу Не надо
Где неформализованный алгоритм?
Где блок схема со словами?
и т.д.

Правильно преподаватель говорит, что нужно вернуться в НАЧАЛО.

Так что давай ... в начало:

Вывести на экран самое длинное и самое короткое слово из строки, введенной пользователем.
Нужно составить алгоритм.



Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #111 : 29-12-2009 05:25 » 

Мне надо чтобы он брал всегда разные биты 0,1,2,3..
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #112 : 29-12-2009 05:28 » 

Dana, А я ведь просил тебя - будь последовательной.
Цитата
Мне надо составить неформализиванный алгоритм
Потом блок схему со словами
потом блок схему ориентрованную на СИ
а уже затем программу Не надо
Где неформализованный алгоритм?
Где блок схема со словами?
и т.д.

Правильно преподаватель говорит, что нужно вернуться в НАЧАЛО.

Так что давай ... в начало:

Вывести на экран самое длинное и самое короткое слово из строки, введенной пользователем.
Нужно составить алгоритм.





Пусть самое длинное(короткое) слово будет первым, и назовем его эталонным
Пока все слова не кончились
Сравнивать его с эталонным.
Если Слово длиннее(короче) эталонного, то запомнить его как эталонное
Перейти к следующему слову.
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #113 : 29-12-2009 06:15 » 


Пусть самое длинное(короткое) слово будет первым, и назовем его эталонным
Пока все слова не кончились
Сравнивать его с эталонным.
Если Слово длиннее(короче) эталонного, то запомнить его как эталонное
Перейти к следующему слову.
а дальше? наверное, как минимум, после того, как слова закончились надо сделать то, ради чего это всё затевалось..
Записан
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #114 : 29-12-2009 06:51 » 

проверить что конец строки и вывести на экран запомненые эталоные слова
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #115 : 29-12-2009 07:03 » 

Начало

Ввести слова

Найти самое...

Вывести

Конец.


Начало (найти самое...)

Запомнить эталонное слово (пусть этим словом будет первое слово)

Начать цикл

Текущее слово Сравнивать с эталонным
По результату сравнения запомнить или не запомнить Эталонное слово


Закончить цикл когда все слова перебрали

Конец (найти самое...)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #116 : 29-12-2009 07:05 » 

Что еще?
Еще нужно описать алгоритм разбиения предложения на слова.
Но по приведенному примеру схем, я думаю, что ты САМА Это Сделаешь!!!
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #117 : 29-12-2009 07:41 » 

Начало
проверить есть ли пробел, точка, знак табуляции

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

если нет
конец (найти самое...)
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #118 : 29-12-2009 08:15 » 

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

если да
проверить введен ли символ,  кто, кто введен?
если да
считать слово

если нет
конец (найти самое...) ошибка

Давай сначала
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dana
Опытный

ru
Offline Offline
Пол: Женский

« Ответ #119 : 29-12-2009 09:00 » 

Начало
проверить есть ли пробел, точка, знак табуляции назови это одним словом цикл (проверить)

если да
проверить введен ли символ,  кто, кто введен? введена ли буква
если да
считать слово

если нет
конец (найти самое...) ошибка вывести слова на экран

Давай сначала
Записан

Прославься в городе - возбудишь озлобленье, а домоседом стань - возбудишь подозренье. Не лучше ли тебе, хотя б ты Хызром был, ни с кем не знаться, жить всегда в уединенье?
Страниц: 1 2 3 [4] 5 6 7   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines