• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Строки

Plushevuy

Ученик
Регистрация
29 Май 2008
Сообщения
10
Реакции
0
Баллы
0
Здравствуйте, Дорогие!!! Помогите, пожалуйста решить парочку задачек по строкам.

1. Написать программу которая вводит с клавиатуры повествовательное предложение в Present Continious и преобразовывает его в вопросительное. Предложение простое.

2. Пользователь с клавиатуры вводит Ф.И.О.(неограниченное кол-во). Упорядочить по алфавиту.Проверить (и исправить, если нужно) написание собственных имен с больших букв.
 
хйац
если актуально еще то напищи
так же устроит ли тебя это на паскале/delphi?
а так же
1. I am (=I'm) playing ---- Am I playing? (т.е надо только переставить 2 и 1 слово не очем больше не задумываясь, ну и поменять на заглавную букву) подвохов некаких? типа сокращения (=I'm)
2. Что значит неограниченное? Т.е надо использовать динамическую память или скажем достаточно ограничения в 32000 позиций?
 
Здравствуйте!!!! Спасибо огромное что ответили!!!!!! Да еще даже очень актуально!!!!!
чесно говоря не знаю ни паскаль ни delphi, было бы лучше на С++. Но если без варинтов, то устроит.

1. Не, подвохов нет. ТОлько переставить, поменять заглавную и вконце на згак вопроса. ДумаюЮ что сокращения не стоит рассматривать.
2. Т.е программа спрашивает сколько будете вводить Ф.И.О. -ответ например 4 и тогда только вводятся, вот так.
 
Так основной смысл этих задач замена срочной буквы на заглавную
все остальное не проблема (хотя замена тоже не проблема через АСКИИ ))))

Итак завтра напишу - а щас спать после трудовых будней
 
Ой, спасибо огромное!!!!!!!!!!!!!!!!!!!!!! Это же так прекрасно!!!!! На языке с++???? Бывают же такие люди, которые готовы помочь....Супер!! А можно понаглеть и еще одну задачку по строкам выставтиь?
Написать программу, пользователь с клавиатуры вводит текст до 20 символов, максимальное кол-во строк 10, и подсчитывает сколько раз стречается заданное слово.
Есть текст программы-можно ли его упростить ло самого примитивног образа-до обычных циклов и самых начальны параметров ввода??
вот :
# include <iostream.h>
# include <conio.h>
# include <string.h>
# include <stdio.h>

const int SIZE = 20;
char text[ SIZE + 1 ];
char word[ SIZE + 1 ];

void main()
{
char buf[ SIZE + 1 ];
char big_buf[ 3*SIZE ];

clrscr();

// забиваем нулями строки
memset( big_buf, 0, 3*SIZE );
memset( buf, 0, SIZE + 1 );
memset( text, 0, SIZE + 1 );

// ввод текста
cout << "Text: ";
while ( !cin.eof() && strlen( big_buf ) <= SIZE )
{
cin >> buf;
strcat( big_buf, buf );
}
strncpy( text, big_buf, SIZE );
fflush( stdin );

// ввод слова
cout << "Word: ";
cin >> word;

// Поиск кол-ва вхожденй
int i = 0;
char * p = text;
while ( p = strstr( p, word ) )
{
++p;
++i;
}

cout << "Words count = " << i << endl;
cout << endl << "Press any key to exit...";
getch();
}
 
эй... bubuka...ну, где же ты....
 
С горем пополам решила задачу первую-про фамилии-единственно, что не исправляет написание Ф.И.О с больших букв Как это сделать, чтоб работало?
вот она:
# include <iostream.h>
# include <ctype.h>
# include <stdlib.h>
# include <string.h>
# include <conio.h>

int main()
{
int i,j,m,nom,t=0;
char c[101][101], x[101], min[101];
double p;
clrscr();
do
{
cout<<"vvedite kolichestvo F.I.O (strok)\n";
cin>>m;
m++;

cout<<"vvedite F.I.O (stroki)\n";
for (i=1;i<=m;i++)
cin.getline (c,sizeof(c));

for (i=1;i<=m-1;i++)
{j=i;
strcpy (min,c);
nom=i;
for (j=i+1;j<=m;j++)
{p=strcmp(c[j],min);
if (p<0)
{strcpy (min,c[j]);
nom = j;}}
strcpy (x,c);
strcpy (c,c[nom]);
strcpy (c[nom],x);}
for (i=1;i<=m;i++)
cout<<c<<"\n";
cout<<"eshche? 1/0\n";
cin>>t;}
while (t==1);

return 0;}
 
http://www.opennet.ru/docs/RUS/glibc/glibc-4.html
особенно - подпункт 4.2 Замена регистра
перед for (i=1;i<=m-1;i++) надо че-то с c[1] сделать

Ошибка.
Код:
cout << "vvedite kolichestvo F.I.O (strok)\n";
cin >> m;
заменить на
Код:
do{
cout << "vvedite kolichestvo F.I.O (strok)\n";
cin >> m;
}while( m > 100 && m < 1 );
и еще: юзайте endl, английские слова и структурируйте как-нть свой код, чтобы самой потом проще разбираится( если пишите "{" на отдельной строке, то и пишите так везде) - предыдущий Ваш пример был красивее
 
Спасибо ВАм огромное!!!!!!!за совет!!!!!!!!и ответ!!!!!!
 
Про с[1] я поняла-это на счет первого слова, а как быть со вторыми? В фаимилии, имени и отчестве 3 слова же...
 
вставить во внутрь цикла предаврително сброшенный флажок и устанавливаемый если !strcmp(s, " ")
а до этого шага нужно проверять флажок и , если он установлен - сбрасывать и обрабатывать текйщий символ как первую букву.
0) до входа в цикл - установить флажок, потому что первый символ.
цикл{
1) если установлен ли флажок, сбрсить его + апперкейс текущего символа
2) если текущий симпол - пробел,- установить флажок
....
}

гыыы, можно даже реализовать удаление длинных последовательностей пробелов.
 
bubuka написал(а):
Так основной смысл этих задач замена срочной буквы на заглавную
все остальное не проблема (хотя замена тоже не проблема через АСКИИ ))))

Итак завтра напишу - а щас спать после трудовых будней
ой...ПРивет...
 
Он это написал 30.05 сейчас 03.06 Товарищ спит уже 4 дня, или я живу в параллельном измерении, где время течет иначе.

PS: Привееет!!
 
Alive_UA написал(а):
Он это написал 30.05 сейчас 03.06 Товарищ спит уже 4 дня, или я живу в параллельном измерении, где время течет иначе.
я не сплю, я вынужден был уехать в выхдные и до сих пор не имею доступа к компьютеру

извиняюсь что пообещал и не сделал вовремя
 
bubuka, не извиняйтесь, Вы поступили правильно: если за других делать, они тупеют. Иначе,- сами разбираются, получая драгоценные навыки :p
 
знаете...может и правда.)))) т.к сделала сама одну задачу. Осталось только про Предложение...может кто поможет...P.S мозги подводят.....((((
 
если помоч советом без кода, то

I am angry. - Это предложение вида Подлежащие_сказуемое_всеостальное.
Мы разделяем его на слова и меняем первое и второе
Замену на мой взгляд проще сделать разбив строку на отдельные слова и записав их в массив. Соответсвенно потом заменив первый и второй элемент массива

Меняем первую букву в первом слове на заглавную

Во втором сломве меняем первую букву на маленькую (если это буква I - то не меняем)


Затем складываем через пробел все элементы массива в новую строку. Прибавляем знак вопроса ?
 
Да!!! Спасибо огромное!!! Я уже написала прогу.
вот текст, если вдруг кому станет интересно
//Пользователь вводит повествовательное предложение в Present Continious,
программа должна его переделать в впоросительное предложение.
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
# include <string.h>
# include <ctype.h>
int main()
{
char str[255];
char first_str[128];
char second_str[128];
int j = 0; // 1-y probel
int k = 0; // 2-y probel
int n= 0;
int i;
clrscr();
cout<<"Please enter the string:"<<endl;
cin.getline(str,sizeof(str));
for( i=0; i<255; i++)
{
if(str!=' ')
{
if(i == 0) first_str = tolower(str);
else first_str = str;
}
else {
j = i;
break;
}
}
for(i= j+1;i<255;i++)
{
if(str!= ' ')
{
if(n == 0) second_str[n] = toupper(str);
else second_str[n] = str;
n++;
}
else
{
k = i;
break;
}
}
for(i = 0; i < k-j-1; i++)
str = second_str;
str[k-j-1] = ' ';
n = 0;
for( i = k-j; i < k;i++)
{
str = first_str[n];
n++;
}
str[strlen(str)] = '?';
str[strlen(str)+1] = '\0';
str[strlen(str)+2] = '\n';
cout<<"Result:"<<endl;
cout<<str<<endl;
getch();

system("PAUSE");
return EXIT_SUCCESS;


}
 
Набор участников для исследования (дискуссия 22 декабря)

Исследовательская компания проводит набор участников в Санкт-Петербурге на групповые обсуждения 22 декабря. Групповые обсуждения проводятся в формате беседы ведущего с 6 участниками. Продолжительность обсуждения – 2 часа.

Требуются мужчины 25-35 лет:
• Имеющие высшее образование
• Самостоятельно принимающие решения при выборе и покупке товаров
• Предпочитающие товары по цене выше среднего (премиальные марки)
• Общительные, интеллигентные, с широким кругозором

Групповые обсуждения состоятся в офисе компании, недалеко от станции метро «Площадь Александра Невского».

Участникам исследования предоставляется вознаграждение 1 000 руб.

Звоните или оставляйте контакты в личке.
Екатерина: +7 (812) 438 14 70 доб. 152 (с 11 до 19)
 
Назад
Сверху