Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
WHISP
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 6
#1

Нужна помощ с функциями в Borland C. - C++

28.05.2009, 19:03. Просмотров 651. Ответов 7
Метки нет (Все метки)

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

Я приблизительно знаю как её писать, но у меня неполучается правильно передать Массив в функцию.
Помогите, пожалуйста, написать программу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2009, 19:03     Нужна помощ с функциями в Borland C.
Посмотрите здесь:

Помощ в программке C++
C++ Работа с функциями
C++ нужна помощ.... Помогите составить программу...
C++ Нужна помощ
Работа с функциями C++
C++ Работа с функциями
C++ очень нужна помощ по С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deiron
25 / 25 / 1
Регистрация: 25.05.2009
Сообщений: 98
28.05.2009, 19:21     Нужна помощ с функциями в Borland C. #2
Массив одномерный?
тогда все просто. Аргументом функции должен быть указатель (int* или там double*) внутри функции можешь спокойно работать с этим указателем, как с массивом.
WHISP
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 6
28.05.2009, 19:36  [ТС]     Нужна помощ с функциями в Borland C. #3
Да, массив одномерный.
Неполучается программа:
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 <stdio.h>
#include <conio.h>
#define size 10
s(int* A[size])
{
int i,chislo1,B[size];
B[size]=*A[size];
chislo1=B[0];
for(i=0; i<size; i++)
{
if (B[i]>0)
{
if (B[i]<chislo1) chislo1=B[i];
}
else
{
if (B[i]>chislo1) chislo1=B[i];
}
}
return(chislo1);
}
 
main()
{
clrscr();
int A[size];
int chislo,i;
for(i=0; i<size;)
{
printf("\n Vvedi chisla");
scanf("%d",&A[i]);
i++;
}
[COLOR=Red]chislo=s(int* A[size]);[/COLOR] Тут указует на ошибку: Expression Syntax.
printf("\n 4islo = %d",chislo);
return 0;
}
Наверное вся программа неправильно написана.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
28.05.2009, 19:51     Нужна помощ с функциями в Borland C. #4
Ошибок много, что увидел - исправил (может и еще что найдется: ))
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
#include <stdio.h>
#include <conio.h>
#define size 10
s(int A[])
{
int i,chislo1;
chislo1=A[0];
for(i=0; i<size; i++)
{
if (A[i]>0)
{
if (A[i]<chislo1) chislo1=A[i];
}
else
{
if (A[i]>chislo1) chislo1=A[i];
}
}
return(chislo1);
}
 
main()
{
clrscr();
int A[size];
int chislo,i;
for(i=0; i<size; i++)
{
printf("\n Vvedi chisla");
scanf("%d",&A[i]);
}
chislo=s(A); 
printf("\n 4islo = %d",chislo);
return 0;
}
Сразу скажу, что алгоритм не верный, т.к. не проверяется весь ли массив положительный или нет, а работа ведется с каждым элементом... Нужно переделать
WHISP
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 6
28.05.2009, 20:12  [ТС]     Нужна помощ с функциями в Borland C. #5
Спасибо!
Ну алгоритм проверки массива сам придумаю.

Я чуть вник в функции и написал вторую программу:
1.Написать программу, которая в функции main() запрашивает у пользователя число, которое передается в функцию fun1(). Эта функция возвращает ASCII – символ, соответствующий этому числу. Обеспечить контроль правильности ввода.
Вот она сама:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<conio.h>
int fun1(char x)
{
int num;
num=x;
return(num);
}
main()
{
int num;
char n;
clrscr();
puts("vvedi 4islo");
scanf("%d",&num);
n=fun1(num);
printf("ASCII kod %d simbol %c",num,n);
return 0;
}
Вроде как работает, когда вводил цифры я угадал несколько латинских букв.
Но вот это, я так и непонял: Обеспечить контроль правильности ввода. Что имеется ввиду?
И вот следующая программа:
2.Используя предыдущую программу, вывести все печатные символы таблицы ASCII.
Спомощью функции я их выведу, но я так и непонял каким именно образом нажо это сделать.
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
29.05.2009, 09:51     Нужна помощ с функциями в Borland C. #6
Программа у тебя делает обратное ))) Т.е. ты по ASCII-символу получаешь его числовое значение.. Функция должна наоборот, принимать значение типа Int, а возвращать char.
По поводу контроля.... Во-первых, ASCII-символов может быть только 256... Соответственно проверка должна заключаться в том, что вводится именно целое число не большее 256, и что там нет букв и левых символов, в случае нахождения таких ввод нужно повторить... Т.е. в цикле пытаешься вводить значения до тех пор, пока не введется корректное значение.

По поводу вывода печатаемых символов.... Во-первых, посмотри с какого номера они начинаются... точно не помню, но вроде с 20-го... А далее тупо цикл, что-то типа:
for(int i = 20; i< 256; i++) printf("%c ",func1(i));
вот и все... только не забудь функцию подправить )))
WHISP
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 6
29.05.2009, 23:28  [ТС]     Нужна помощ с функциями в Borland C. #7
Вторую прогу делал еще вчера.
Функцию неподправил, преподаватель принял такую программу, видимо тоже сразу неувидел))
Та у меня Borland C 3.1 еще странный какойто, он в программах связанных с символьным типом данных, или со строками, вместо символов выводит непонятные значки, а в Институте эти же программы работают как надо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2009, 22:21     Нужна помощ с функциями в Borland C.
Еще ссылки по теме:

C++ что-то не то с функциями!
Разбираюсь с функциями C++
C++ Нужна помомщь с перегружаемыми функциями
Работа с функциями C++
задача с функциями C++

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

Или воспользуйтесь поиском по форуму:
Haster
инженер-системотехник
 Аватар для Haster
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
30.05.2009, 22:21     Нужна помощ с функциями в Borland C. #8
Это не борланд странный, а видимо используются разные кодировки... Лучше всегда обходиться буквами английского алфавита и все будет нормуль.
Я как-то тоже на этом погорел: дома писал прогу под ДОС с графическим интерфейсом (ну менюшки там были подсвечены), и меню русскими буквами обозвал, а принес показывать - там абракадабра полная... Ну мне повезло, отмазался ))
Yandex
Объявления
30.05.2009, 22:21     Нужна помощ с функциями в Borland C.
Ответ Создать тему
Опции темы

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