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

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

Войти
Регистрация
Восстановить пароль
 
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
#1

Написать функцию к программе - C++

05.02.2012, 17:15. Просмотров 618. Ответов 10
Метки нет (Все метки)

Есть программа:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int N;
 
int MASP1()
{
int *P1=new int[90000];
int bell;
char string[25];
int i,l,k,h,f,z;
for (i=1;i<N;i++){
                       k=1;
                       f=0;
                       h=0;
                       l=0;
                       bell=0;
                       l=i*i;
                       cout<<endl<<l<<endl;
                       itoa(l,string,10);
                       h=strlen(string);
                      // cout<<"h= "<<h<<endl;
                      // cout<<" string[0] = "<<string[0]<<" ";
                       for (k=1; k<=h; k++){
                       if (string[k-1]==string[h+1-k-1]){
                                                     f++;
                                                    }
                      }//closer for k
                    //  cout<<"i="<<i;
                    //  cout<<" f = "<<f<<" ";
                       if (f==h){ bell = 1 ;}
                       else { bell = 2;}
                           //  }//  close for k
     if (bell == 1) {
                      for(z=1; z<=i; z++){  P1[i]=i ;}
                    }
                    cout<<" Palindrom = "<<bell;
 
                 }//close for i
 
cout<<endl<<" Massiv chisel P1: "<<endl;
for(z=1; z<=50; z++){
if (P1[z]!=0){cout<<P1[z]<<"     ";}
}
return P1[i];
return i;
}
 
int MASP2()
{
}
 
 
int main()
{
clrscr();
cout<<endl<<" Please, enter N: "<<endl;
cin>>N;
MASP1();
getch();
MASP2();
getch();
return 0;
}

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

Как написать программе выполнять определённое действие (функцию) перед закрытием? - C++
В общем, как я раньше и говорил, я работаю над программой. Очень быстрой. Слегка подкорректировав код программы я сумел увеличить...

Написать функцию, которая, в зависимости от выбора пользователя вызывает соответствующую функцию - C++
Помогите, что то я не могу понять задачи, даже не знаю с чего начать)))) 5. Написать функцию, которая, в зависимости от выбора...

Написать функцию, которая могла бы передать значение в другую функцию - C++
как сделать функцию которая бы могла передать значеие в другую функцию ну к примеру a=4*b; где b=sin(fi);

не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек - C++
#include &lt;iostream&gt; #include&lt;Windows.h&gt; using namespace std; struct NE{ int x; NE *pnext,*ppor,*cur;}; class SPISOK { NE...

Написать функцию, которая, в зависимости от выбора пользователя вызывает функцию сложения, произведения - C++
Кто знает как можно решить эту задачу на С++? Написать функцию, которая, в зависимости от выбора пользователя вызывает функцию сложения,...

Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K) - C++
Здравствуйте, нужна помощь по решению двух зачад в TC++(Turbo C++); Задача 1. Написать функцию, которая вычисляет объем и площадь...

10
IFree Host
Заблокирован
05.02.2012, 17:23 #2
C++
1
2
3
4
5
6
7
8
9
10
11
int MASP2()
{
 
int i;
 
i = MASP1();
i *= i;
 
printf("%i\n", i);
 
}
Но выводить будет само собой только последний элемент массива.
1
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 17:27  [ТС] #3
а как весь массив вывести?
0
IFree Host
Заблокирован
05.02.2012, 17:46 #4
Тогда желательно возвращать элемент через указатель

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void MASP1(int * i_arrayElement)
{
...
 
*i_arrayElement = ЧЧЧ;  // здесь то что ты хочешь передавать
}
 
int MASP2()
{
 
int i;
int * j;
 
MASP1(j);
i = *j * *j;
 
printf("%i\n", i);
 
}
0
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 18:03  [ТС] #5
а чего когда я массив глобально объявляю, в массиве появляються ненужные элементы?
0
IFree Host
Заблокирован
05.02.2012, 18:24 #6
Честно говоря я не совсем понимаю логику твоего кода.
Вот, смотри.

Ты задекларировал N глобально. Зачем глобально? Не нашел другого решения?
Глобальных переменных лучше по возможности избегать, а вместо этого пользоваться передачей значений

Декларируешь массив как если бы он был динамическим

C
1
int *P1=new int[90000];
Видно что здесь хочешь задать ему размер, но незнаешь как передать его в функцию:

C
1
cin>>N;
Метод научного тыка это хорошо. Но еще лучше понимать, что делаешь.

Иди всегда небольшими шагами:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void massivP1(int arraySize)
{
      int *P1=new int[arraySize];
 
      // действия над массивом
 
      delete []P1;
 
}
 
void main()
{
      int arraySize;
      cin >> arraySize;
 
      massivP1(arraySize);
}
Если это работает приступай к следующему шагу.
1
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 18:32  [ТС] #7
я не знаю количество элементов в массиве. Я вычитал про динамисескую память, но не понял суть. Deley []p1 что удаляет?
0
IFree Host
Заблокирован
05.02.2012, 18:41 #8
delete []P1; удаляет массив из памяти после его использования.

Память под массивы выделяется блоками в зависимости от выбранного типа массива.
например тип char имеет размер в один байт. а тебе нужен массив из десяти элементов

C
1
char c_array[10]; // от 0 до 9
В памяти будут зарезервированы 10 байт

в случае когда массив нужно создавать налету *(или динамически) приходиться прибегать к выделению памяти с помощью new.
Если такой массив не удалить он так и будет висеть в памяти даже после окончания программы. Что не очень полезно для компьютера
Память то выделена! Чего бы не висеть
0
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
05.02.2012, 18:42 #9
Цитата Сообщение от Сидоренко Посмотреть сообщение
. Deley []p1 что удаляет?
C++
1
2
int * a = new int[n]; //создаёт массив..
delete[] a;  // удаляет массив ( а точнее память выделенную под этот массив)
0
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 18:44  [ТС] #10
а как узнать количество элементов в массиве?
0
IFree Host
Заблокирован
05.02.2012, 18:51 #11
Ну, в данном случае ты их задешь сам путем ввода с клавиатуры через команду

C
1
cin >> arraySize;
То есть в этом месте работа программы приостановиться и будет поджидать какое значение ты введешь с клавиатуры.

Конечно возможны и другие варианты:
Например программа открыла незнакомый файл прочла оттуда все слова сосчитала сколько этих слов создала массив подходящего размера и загрузила их все в массив.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 18:51
Привет! Вот еще темы с ответами:

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

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

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

Написать встроенную функцию min () и обычную функцию imin (), которые возвращают меньшее из двух целых значений - C++
Написать встроенную функцию min () и обычную функцию imin (), которые возвращают меньшее из двух целых значений.


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

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

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