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

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

Восстановить пароль Регистрация
 
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 17:15     Написать функцию к программе #1
Есть программа:
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) поднести в квадрат и вывести на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 17:15     Написать функцию к программе
Посмотрите здесь:

C++ Написать функцию, которая могла бы передать значение в другую функцию
Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров C++
C++ Написать функцию, которая возвращает минимальное из двух чисел, которые переданы в функцию в качестве параметров
Заменить функцию в программе на шаблон C++
C++ Создать функцию в программе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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);
 
}
Но выводить будет само собой только последний элемент массива.
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 17:27  [ТС]     Написать функцию к программе #3
а как весь массив вывести?
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);
 
}
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 18:03  [ТС]     Написать функцию к программе #5
а чего когда я массив глобально объявляю, в массиве появляються ненужные элементы?
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);
}
Если это работает приступай к следующему шагу.
Сидоренко
-37 / 43 / 2
Регистрация: 26.10.2010
Сообщений: 447
05.02.2012, 18:32  [ТС]     Написать функцию к программе #7
я не знаю количество элементов в массиве. Я вычитал про динамисескую память, но не понял суть. Deley []p1 что удаляет?
IFree Host
Заблокирован
05.02.2012, 18:41     Написать функцию к программе #8
delete []P1; удаляет массив из памяти после его использования.

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

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

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

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

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

Или воспользуйтесь поиском по форуму:
IFree Host
Заблокирован
05.02.2012, 18:51     Написать функцию к программе #11
Ну, в данном случае ты их задешь сам путем ввода с клавиатуры через команду

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

Конечно возможны и другие варианты:
Например программа открыла незнакомый файл прочла оттуда все слова сосчитала сколько этих слов создала массив подходящего размера и загрузила их все в массив.
Yandex
Объявления
05.02.2012, 18:51     Написать функцию к программе
Ответ Создать тему
Опции темы

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