HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 25.12.2009, 00:11
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
С нами: 12604706

Репутация: 0


По умолчанию

Цитата:
Сообщение от Retimiled  
да и судя по задаче ...препод хотел увидеть рекурсию... ИМХО!
Зачем там рекурсия? Там итеративно решить можно, я даж недавно тут пример где-то приводил...
 
Ответить с цитированием

  #2  
Старый 25.12.2009, 00:24
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
С нами: 8622379

Репутация: 45
По умолчанию

int check(int *a,int n) // взорви моск препода
{
for(i=0;i<n-2;i++)
if((a[i] & 1)+(a[i+1] & 1)+(a[i+2] & 1)==3)
return a[i];
return 0;
}
 
Ответить с цитированием

  #3  
Старый 25.12.2009, 11:06
tester_on
Новичок
Регистрация: 04.12.2009
Сообщений: 3
С нами: 8650352

Репутация: 0
По умолчанию

Не кто?
 
Ответить с цитированием

  #4  
Старый 26.12.2009, 15:11
STIFFmaster
Новичок
Регистрация: 12.12.2009
Сообщений: 10
С нами: 8639617

Репутация: 0
По умолчанию

помогите с лабораторной. Нужно осуществить поиск подстроки в строке без использования функций.
я пробовал так:
Код:
#include <iostream.h>  
void main()  
{
  	char stroka[30];
  	char podstroka[6];
  	int ch=0;
  	cout<<" vvedite stroky:  ";
  	cin.getline(stroka, 30);
  	cout<<"\n vvedite iskomyjy podstroky:  ";
  	cin.getline(podstroka, 6);
  	for ( int i=0; i<50; i++)
  	{
  		if (podstroka[0]==stroka[i])&&
  	   	   (podstroka[1]==stroka[i])&&
  	   	   (podstroka[2]==stroka[i])&&
  	   	   (podstroka[3]==stroka[i])&&
  		   (podstroka[4]==stroka[i])&&
  	   	   (podstroka[5]==stroka[i]) ch++;  		
}
  		cout<<ch;  		
}
не получается...
 
Ответить с цитированием

  #5  
Старый 27.12.2009, 16:55
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
С нами: 8622379

Репутация: 45
По умолчанию

Цитата:
Сообщение от STIFFmaster  
помогите с лабораторной. Нужно осуществить поиск подстроки в строке без использования функций.
я пробовал так:
Код:
#include <iostream.h>  
void main()  
{
  	char stroka[30];
  	char podstroka[6];
  	int ch=0;
  	cout<<" vvedite stroky:  ";
  	cin.getline(stroka, 30);
  	cout<<"\n vvedite iskomyjy podstroky:  ";
  	cin.getline(podstroka, 6);
  	for ( int i=0; i<50; i++)
  	{
  		if (podstroka[0]==stroka[i])&&
  	   	   (podstroka[1]==stroka[i])&&
  	   	   (podstroka[2]==stroka[i])&&
  	   	   (podstroka[3]==stroka[i])&&
  		   (podstroka[4]==stroka[i])&&
  	   	   (podstroka[5]==stroka[i]) ch++;  		
}
  		cout<<ch;  		
}
не получается...
Мог бы дать ..."самый быстрый поиск" но не обьяснишь преподу ,раз проблемы с простейшим! Есть несколько миров в программировании!
Код:
...
 int flag;
 for(i=0,ch=0;*(stroka+i)!=0;i++)
 {
  for(int j=0,flag=0;*(podstroka+j)!=0 && flag==0 && *(stroka+i+j)!=0;j++)
      if(*(stroka+i+j)!=*(podstroka+j))
          flag=1;
      if(flag==0)
         ch++;
 }

Последний раз редактировалось Retimiled; 27.12.2009 в 19:07..
 
Ответить с цитированием

  #6  
Старый 27.12.2009, 17:26
Sinex
Участник форума
Регистрация: 17.08.2006
Сообщений: 129
С нами: 10385516

Репутация: 89
По умолчанию

Помогите пожалуйста с ассемблером.
Шесть задач надо срочно сделать.
+ гарантируется
1)Издающий писк, если слово оканчивается буквой "В"
2)Стирающий экран при нажатии клавиши "END"
3)Издающий писк только при вводе латинских букв.
4)Издающий писк только при вводе букв кириллицы.
5)Стирающий предыдущий символ при нажатии клавиш "wn" (эти две буквы при этом на экран выводиться не должны)
6)Заменяющий все буквы Ы кириллицы на сочетание "йи"
 
Ответить с цитированием

  #7  
Старый 27.12.2009, 17:27
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
С нами: 12604706

Репутация: 0


По умолчанию

Цитата:
Сообщение от Retimiled  
Код:
...
 int flag;
 for(i=0,ch=0;*(stroka+i)!=0;i++)
 {
  for(int j=0,flag=0;*(podstroka+j)!=0 && flag==0;j++)
      if(*(stroka+i+j)!=*(podstroka+j))
          flag=1;
      if(flag==0)
         ch++;
 }
В *(stroka+i+j) будет выход за пределы строки.
 
Ответить с цитированием

  #8  
Старый 26.12.2009, 19:10
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами: 10216668

Репутация: 930


По умолчанию

как ты представляешь логику твоей программы?
ты на каждой итерации сравниваешь поочердено все символы подстроки с одним элементом. что неверно. ты должен сравнивать i-ый элемент строки с первым в подстроке. i+1-ый со вторым и тд.
плюс избегай странных чисел, используй константы
 
Ответить с цитированием

  #9  
Старый 26.12.2009, 21:03
elusive.light
Новичок
Регистрация: 29.11.2009
Сообщений: 4
С нами: 8656962

Репутация: 0
По умолчанию

PLS помогите решить задачу реально сам не могу справиться. Мне её в понедельник надо сдать(28.12.09). Заранее очень благодарен

В киоске продается растворимый кофе, предлагается ассортимент из трех известных кофейных торговых марок (названия на ваш выбор), а также варианты приготовления – полный стакан / половина стакана, от 0 до 2 ложек сахара. Сделайте объявление структуры данных, моделирующей заказ кофе. При этом для кода торговой марки обязательно применить конструкцию enum, а информацию о количестве воды и ложек сахара следует запаковать при помощи битовых полей в один байт. Нужно составить тестовую программу, использующую такую структуру.
 
Ответить с цитированием

  #10  
Старый 27.12.2009, 11:35
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

Репутация: 128
По умолчанию

Цитата:
Сообщение от elusive.light  
PLS помогите решить задачу реально сам не могу справиться. Мне её в понедельник надо сдать(28.12.09). Заранее очень благодарен

В киоске продается растворимый кофе, предлагается ассортимент из трех известных кофейных торговых марок (названия на ваш выбор), а также варианты приготовления – полный стакан / половина стакана, от 0 до 2 ложек сахара. Сделайте объявление структуры данных, моделирующей заказ кофе. При этом для кода торговой марки обязательно применить конструкцию enum, а информацию о количестве воды и ложек сахара следует запаковать при помощи битовых полей в один байт. Нужно составить тестовую программу, использующую такую структуру.
Какой язык?

Вот тебе на Сях
Код:
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

typedef enum {JACOBS, NESCAFE, TCHIBO} trade_mark_t;

const char* sugar_msgs[] = {"без","с одной ложечкой","с двумя ложечками"};

const char* water_msgs[] = {"стаканчик","половина стаканчика"};
const char* trademark_msgs[] = {"JACOBS", "NESCAFE", "TCHIBO"};

/* Структура заказа стаканчика кофе */
typedef struct {
	
	/* Торговая марка */
	trade_mark_t tm;
	
	/* битовое поле сахара и воды
	 * 0x00 - полный стакан без сахара 
	 * 0x01 - полстакана без сахара
	 * 0x11 - полстакана с одной ложкой сахара
	 * 0x21 - полстакана с двумя ложками сахара*/
	uint8_t sugar_water;
	
} request_for_coffee_t;

void check_correct(int have, int max);

int main(int argc, char** argv)
{
	request_for_coffee_t request;
	int sugar, water, tm;
	
	(void) printf("Какой марки кофе вы жаждете?\n");
	(void) printf("[0] JACOBS\n[1] NESCAFE\n[2] TCHIBO\n");
	(void) scanf("%d",&tm);
	check_correct(tm,2);
	
	(void) printf("Сколько сахара?\n");
	(void) printf("[0] без сахара\n[1] одна ложечка\n[2] две ложечки\n");
	(void) scanf("%d",&sugar);
	check_correct(sugar,2);
	
	(void) printf("Дозировка\n");
	(void) printf("[0] стаканчик\n[1] половина стаканчика\n");
	(void) scanf("%d", &water);
	check_correct(water,1);
	
	request.tm = tm;
	request.sugar_water = sugar;
	request.sugar_water <<= 4;
	request.sugar_water |= water;
	
	(void) printf("Вы заказали:\n");
	(void) printf("%s ",water_msgs[request.sugar_water & 0x0F]);
	(void) printf("%s\n",trademark_msgs[request.tm]);
	(void) printf("%s сахара\n",sugar_msgs[request.sugar_water>>4]);
	(void) printf("Спасибо, до свиданья!\n");
	
	return 0;
}

void check_correct(int have, int max) {
	if(have >= 0 && have <=max)
		return;
	else {
		fprintf(stderr, "Нет таких кнопок на кофейном автомате :)\n");
		exit(1);
	}
}

Последний раз редактировалось ss88; 27.12.2009 в 12:34..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.