Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
4 / 4 / 0
Регистрация: 09.04.2012
Сообщений: 44
Записей в блоге: 1

Функция, которая получает по ссылке две переменные

13.04.2012, 21:48. Показов 3382. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1.Разработать функцию, которая получает по ссылке две переменные А и В (любого типа данных) и обрабатывает их в соответствии с некоторым правилом, например, если А больше В, то меняет их значения местами.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2012, 21:48
Ответы с готовыми решениями:

Написать процедуру, которая получает две вещественные переменные
Написать процедуру, которая получает две вещественные переменные и возвращает вместо каждой из них отклонение от среднего арифмети- ...

Напишите функцию, которая получает две переменные целого типа
9. Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не равны, то функция присваивает каждой...

Напишите функцию, которая получает две переменные целого типа: A и B
Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не равны, то функция присваивает каждой переменной...

10
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
13.04.2012, 22:28
Цитата Сообщение от dim1993 Посмотреть сообщение
Разработать функцию, которая будет получать указатель на строку символов и возвращать длину строки в байтах.
C++
1
2
3
4
5
6
7
int str_len(char *ch)
{
  int len = 0;
  while(ch[len] != '\0')
    len++;
  return len;
}
2
4 / 4 / 0
Регистрация: 09.04.2012
Сообщений: 44
Записей в блоге: 1
13.04.2012, 22:55  [ТС]
а можно немного поподробней,просто я новичок.не совсем все понятно.
0
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
13.04.2012, 23:15
Строки в C++ заканчиваются нулевым символом - '\0'.
Строки это массивы char поэтому доступ к отдельным символам - ch[0], ch[1]...
C++
1
2
3
4
5
6
7
int str_len(char *ch)
{
  int len = 0;
  while(ch[len] != '\0') // пока символ не '\0'
    len++; // len = len + 1 - прибавляем единицу и движемся по массиву - ch[len]
  return len; // возвращаем len 
}
1
4 / 4 / 0
Регистрация: 09.04.2012
Сообщений: 44
Записей в блоге: 1
13.04.2012, 23:49  [ТС]
помогите,пожалуйста ещё и с первым заданием.
0
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
14.04.2012, 00:35
Цитата Сообщение от dim1993 Посмотреть сообщение
Разработать функцию, которая получает по ссылке две переменные А и В
Не совсем понятно. Может указатель?

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
void fun(int *m)
{
  int A = m[0];
  int B = m[1];
  int tmp;
  if(A > B)
    {
      tmp = m[0];
      m[0] = m[1];
      m[1] = tmp;
    }
}
1
26 / 26 / 3
Регистрация: 13.04.2012
Сообщений: 61
14.04.2012, 01:56
На счет первого, я думаю, что надо так
C++
1
void fun(int &A, int &B);
но меня смущает, что там требуют любой тип, тут уже шаблоны нужны.

Добавлено через 22 минуты
C++
1
2
3
4
5
6
7
8
9
10
template< typename T > 
void fun(T &A, T &B)
{
    T tmp = A;
    if(A > B)
    {
        A = B;
        B = tmp;
    }    
}
Вызов с разными типами:
C++
1
2
3
4
5
6
7
char cA = 5;
char cB = 3;
fun(cA, cB);
 
int iA = 6;
int iB = 4;
fun(iA, iB);
1
4 / 4 / 0
Регистрация: 09.04.2012
Сообщений: 44
Записей в блоге: 1
14.04.2012, 11:15  [ТС]
Разработать функцию, которая получает по ссылке две переменные А и В (любого типа данных) и обрабатывает их в соответствии с некоторым правилом, например, если А больше В, то меняет их значения местами.

А если мне к этой программе необходимо добавить в форму поля для ввода значений переменных, кнопку для вызова обработчика, в котором с помощью разработанной функции будут обрабатываться значения переменных, а также будут выводиться в поля формы новые значения переменных.

То как будет выглядеть код?
0
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
14.04.2012, 20:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
void fun(int &A, int &B)
{
  int tmp = A;
  if(A > B)
    {
      A = B;
      B = tmp;
    }
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int a = Edit1->Text.ToInt();
  int b = Edit2->Text.ToInt();
  fun(a, b);
  Edit1->Text = IntToStr(a);
  Edit2->Text = IntToStr(b);
}
//---------------------------------------------------------------------------
2
4 / 4 / 0
Регистрация: 09.04.2012
Сообщений: 44
Записей в блоге: 1
15.04.2012, 09:50  [ТС]
Sergey-K не могли бы вы объяснить что делаете в каждом пункте.просто новичок и не все понятно.заранее спасибо.
0
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
15.04.2012, 14:13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
void fun(int &A, int &B) /* функция, объявляем ссылки на тип int,
  при вызове функции они инициализируются,
  с ними можно работать как с обычными переменными типа int */
{
  int tmp = A; // объявляем временную переменную типа int для хранения значения A
  if(A > B) // если A больше B
    {
      A = B; // присваиваем A значение B
      B = tmp; // присваеваем B значение tmp. В tmp хранилось значение A, оно присваивается B
    }
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int a = Edit1->Text.ToInt(); /* объявляем переменную a типа int
    и инициализируем ее значением введенным в Edit1.
    Свойство Edit1->Text имеет тип AnsiString, преобрезуем его в int (.ToInt()) */
  int b = Edit2->Text.ToInt(); // объявляем переменную b типа int и делаем аналогично a
  fun(a, b); // вызов функции
  Edit1->Text = IntToStr(a); // вывод a, преобрезуем int в AnsiString (IntToStr())
  Edit2->Text = IntToStr(b); // вывод b, преобрезуем int в AnsiString
}
//---------------------------------------------------------------------------
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2012, 14:13
Помогаю со студенческими работами здесь

Напишите функцию, которая получает две переменные целого типа: A и B
Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не отрицательны, то функция присваивает каждой...

Напишите функцию, которая получает три переменные вещественного типа
11. Напишите функцию, которая получает три переменные вещественного типа с разными значениями: A, B, C. Если их значения упорядочены по...

. Напишите функцию, которая получает три переменные вещественного типа
10. Напишите функцию, которая получает три переменные вещественного типа с разными значениями: A, B, C. Если их значения упорядочены по...

Функция, которая получает в качестве параметров два целых числа и возвращает сумму
Написать функцию, которая получает в качестве параметров два целых числа и возвращает сумму чисел из диапазона между ними Помогите:-| ...

Написать функцию, которая получает значение типа float и возвращает две строки: одна представляет вещественное число в обычном виде ,а другая
Написать функцию, которая получает значение типа float и возвращает две строки: одна представляет вещественное число в обычном виде ,а...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru