Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
#1

Написать функцию, которая переводит введенную пользователем маленькую букву в большую - C++

12.03.2010, 08:57. Просмотров 3555. Ответов 40
Метки нет (Все метки)

Ребят помогите пожалуйста написать функцию, которая переводит введенную пользователем маленькую букву в большую, надо сделать для английских и русских букв, если мы вводим число, то должно выйти сообщение об ошибке, помогите пожалуйста)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2010, 08:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию, которая переводит введенную пользователем маленькую букву в большую (C++):

Написать функцию, которая переводит число в другую систему счисления - C++
Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно...

Программа, которая копировала бы строку, введенную пользователем с клавиатуры в новую - C++
Написать программу, которая копировала бы строку, введенную пользователем с клавиатуры в новую (максимальная длина строки - 130 символов)....

Написать функцию, которая выписывает имена на поданную букву - C++
Доброго времени суток знатаки! Нужна помощь ? Как написать функцию, которая выписывает имена на поданную букву.? Букву вчитываем в...

Написать функцию, которая определяет количество вхождений в СПИСОК елемента, заданого пользователем. - C++
Ребята помогите пожалуйста, срочно надо!!!!!! Есть програма, но надо что бы она работала со списками!!!! Вот задание: Написать функцию,...

Написать функцию, которая из двух введённых пользователем фамилий определяет, какая длиннее - C++
Доброй ночи. Очень прошу помочь написать программу. Требуется написать функцию, которая из двух введенных пользователем фамилий (введите...

Используя стек, определить функцию, которая переводит выражение в префиксную форму - C++
Есть задание - Используя стек, определить функцию, которая переводит выражение, записанное в обычной (инфиксной) форме в префиксную форму....

40
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 16:44 #16
C++
1
2
3
4
5
unsigned char c;
loop: cin.getline(c,10000);
 if (c>='0' && c<='9'){cout<<"ошибка!!!"<<endl; goto loop;}
  if (c>=97 && c<=122) {c -= 32;  cout<<c<<endl;}
  if (c>=192 && c<=224) {c -= 32;  cout<<c<<endl;}
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 16:46  [ТС] #17
loop что означает?
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 16:50 #18
Функциональность

В абсолютном большинстве языков программирования, поддерживающих его использование, оператор GOTO состоит из двух частей: собственно имени оператора и метки, маркирующей целевую точку перехода в программе, то есть имеет вид GOTO метка. Метка, в зависимости от правил языка, может быть либо числом (как, например, в классическом Бейсике), либо правильным идентификатором используемого языка программирования. Чтобы оператор перехода был корректным, необходимо наличие в тексте программы места, помеченного той же самой меткой, которая использована в данном операторе. Пометка может выглядеть по-разному, например, в языке Паскаль она имеет вид метка: (то есть имя метки, за которым следует двоеточие), возможны и другие соглашения.
Выполнение оператора перехода состоит в том, что следующим после него будет выполнен тот оператор программы, который стоит в тексте непосредственно за помеченным меткой местом (оператор, помеченный меткой), и далее будут последовательно выполняться операторы, расположенные после него (разумеется, до следующего оператора перехода, ветвления или цикла). В случае машинных языков (ассемблеров или непосредственно машинного кода) технический смысл команды перехода элементарен: она записывает в регистр процессора, хранящий адрес следующей выполняемой команды, адрес команды, помеченной меткой.
[править] Распространение

GOTO имеется в таких языках, как Фортран, Алгол, КОБОЛ, Бейсик, Си, C++, D, Паскаль, Perl, Ада, PHP, а также во многих других. GOTO присутствует также во всех языках ассемблера в форме JMP, JUMP или BRA (от англ. branch — ветвь) и используется там чрезвычайно активно. Свобода использования оператора GOTO в различных языках сильно различается. Если в ассемблерах или языках типа Фортрана он может применяться произвольно (допускается передача управления внутрь ветви условного оператора или внутрь тела цикла, а иногда и процедуры), то в более поздних языках высокого уровня его использование ограничено: как правило, с помощью GOTO запрещено передавать управление между различными процедурами и функциями, внутрь выделенного блока операторов, между ветвями условного оператора и оператора множественного выбора.
GOTO отсутствует в некоторых языках высокого уровня, например в Forth (но может быть реализовано средствами самого языка). В Паскаль GOTO первоначально включён не был, но недостаточность имеющихся языковых средств вынудила Никлауса Вирта его добавить. В более поздних своих языках Вирт всё же отказался от GOTO: этого оператора нет ни в Модуле-2, ни в Обероне и Компонентном Паскале. В Java есть зарезервированное слово goto, но оно не несёт никаких функций — оператора безусловного перехода в языке нет. При этом в языке сохранились метки — они могут применяться для выхода из вложенных циклов операторами break и continue.
[править] Критика

Оператор GOTO в языках высокого уровня является объектом критики, поскольку чрезмерное его применение приводит к созданию нечитаемого «спагетти-кода». Впервые эта точка зрения была отражена в статье Эдсгера Дейкстры «Доводы против оператора GOTO»[1], который заметил, что качество программного кода обратно пропорционально количеству операторов GOTO в нём. Статья приобрела широкую известность как среди теоретиков, так и среди практиков программирования, в результате чего взгляды на использование оператора GOTO были существенно пересмотрены. В своей следующей работе Дейкстра обосновал тот факт, что для кода без GOTO намного легче проверить формальную корректность.
Код с GOTO трудно форматировать, так как он может нарушать иерархичность выполнения (т.е. парадигму структурного программирования), и потому отступы, призванные отображать структуру программы, не всегда могут быть выставлены правильно. GOTO также аннулирует многие возможности компилятора по оптимизации управляющих структур[2].
Доводы против оператора GOTO оказались столь серьёзны, что в структурном программировании его стали рассматривать как крайне нежелательный. Это нашло своё отражение при проектировании новых языков программирования. Например, GOTO был намеренно полностью запрещён в Java и Ruby. Вместе с тем, в Аде — одном из наиболее продуманных с точки зрения архитектуры языке за всю историю[3], GOTO всё же был оставлен.
Формально доказано, что применение GOTO не является обязательным (то есть не существует такой программы с GOTO, которую нельзя было бы переписать без этого оператора с полным сохранением функциональности) (однако с потерями эффективности (см. ниже)).
[править] Оправданное применение

Тем не менее, в практическом программировании применение GOTO в некоторых случаях можно считать допустимым. Поскольку GOTO — «простейший», «атомарный» оператор перехода, а все остальные являются «составными», производными от него, то применение GOTO допустимо и оправданно, когда другие средства языка не реализуют или недостаточно эффективно реализуют нужную функциональность. К таким случаям можно отнести:
[править] Выход из нескольких вложенных циклов сразу

Обычно считается, что в языках, где операторы досрочного завершения цикла (такие, как break и continue в Си) могут относиться только к тому из вложенных циклов, в котором они расположены, использование goto допустимо, чтобы выйти из нескольких вложенных циклов сразу. Здесь GOTO значительно упрощает программу, избавляя от необходимости создания вспомогательных переменных-флагов и условных операторов.
Другие варианты решения этой проблемы — помещение вложенных циклов в отдельную процедуру и использование команды досрочного выхода из процедуры, а в языках с поддержкой исключений — генерацию исключения, обработчик которого располагается за пределами циклов. Однако подобные решения могут снижать производительность, в особенности если этот участок кода вызывается многократно (поскольку и вызовы процедур, и операторы работы с исключениями транслируются далеко не в одну машинную инструкцию).
Пример:
int matrix[n][m];
int value;
...
for(int i=0; i<n; i++)
for (int j=0; j<m; j++)
if (matrix[i][j] == value)
{
printf("value %d found in cell (%d,%d)\n",value,i,j);
//act if found
goto end_loop;
}
printf("value %d not found\n",value);
//act if not found
end_loop: ;


0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 16:53  [ТС] #19
спасибо, теперь понятно))) балин а код не компилится((((
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 16:55 #20
сашк, че хочет
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 16:58  [ТС] #21
ты можешь полностью компилирующийся код программы скинуть чтоб я разобрался в нем через printf и scanf?? пожалуйста помоги)))
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 16:59 #22
сашк, какая ошибка вылетает, уважаемый
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 17:01  [ТС] #23
балин, я компили код который ты мне написал, там как раз на это loop указывает, скинь пожалуйста хороший нормальный код с вводом, выводом, функцией с параметрами))) пожалуйста)) а то я еще плохо в си соображаю((
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 17:02 #24
сашк, какая ошибка вылетает
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 17:05  [ТС] #25
там непонятно написано, invalid function declaration и еще чет
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 17:08 #26
C++
1
2
3
4
5
unsigned char c=0;
loop: scanf("&c", c);
 if (c>='0' && c<='9'){cout<<"ошибка!!!"<<endl; goto loop;}
  if (c>=97 && c<=122) {c -= 32;  cout<<c<<endl;}
  if (c>=192 && c<=224) {c -= 32;  cout<<c<<endl;}
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 17:12  [ТС] #27
у тебя код компилится?
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 17:17 #28
сашк, с удовольствием

Добавлено через 13 секунд
сашк, у тя какой компилятор
0
сашк
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 111
14.03.2010, 17:17  [ТС] #29
скинь пожалуйста мне этот рабочий код)))

Добавлено через 17 секунд
Dev C++
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
14.03.2010, 17:18 #30
C++
1
2
3
4
5
unsigned char c=0;
loop: cin>>c;
 if (c>='0' && c<='9'){cout<<"ошибка!!!"<<endl; goto loop;}
  if (c>=97 && c<=122) {c -= 32;  cout<<c<<endl;}
  if (c>=192 && c<=224) {c -= 32;  cout<<c<<endl;}
C++
1
2
3
4
5
unsigned char c=0;
loop: cin.getline(c,100);
 if (c>='0' && c<='9'){cout<<"ошибка!!!"<<endl; goto loop;}
  if (c>=97 && c<=122) {c -= 32;  cout<<c<<endl;}
  if (c>=192 && c<=224) {c -= 32;  cout<<c<<endl;}
C++
1
2
3
4
5
unsigned char c=0;
loop: getline(cin,c);
 if (c>='0' && c<='9'){cout<<"ошибка!!!"<<endl; goto loop;}
  if (c>=97 && c<=122) {c -= 32;  cout<<c<<endl;}
  if (c>=192 && c<=224) {c -= 32;  cout<<c<<endl;}
0
14.03.2010, 17:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 17:18
Привет! Вот еще темы с ответами:

Написать программу которая переводит строку в обратную сторону - C++
написать программу которая переводит строку в обратную сторону при этом не используя функцию strrev (задание само выглядит так :...

Написать программу, которая будет зеркально выводить введенную строку - C++
Доброго времени суток! Стоит задача: написать программу, которая будет зеркально выводить введенную строку. Условие: нельзя...

Написать программу, которая переводит число из 13-й системы счисления в 3-ю через 10-ю - C++
Написать программу, которая переводит число из 13-й системы счисления в 3-ю через 10-ю!

Написать программу, которая переводит английский текст на язык хакеров - C++
Написать программу, которая переводит английский текст на язык хакеров. При этом некоторые буквы исходного текста заменяются на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru