2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Задачи на Одномерные массивы, Процедуры и функции на C++
Сообщение29.06.2012, 22:50 
Аватара пользователя
Доброго времени суток! Прошу помощи в решении следущих задач, которые впрочем можно решить и на Borland C++ Builder, но я предпочитаю Visual C++:

Array:

Array41. Дан массив размера N. Найти два соседних элемента, сумма которых максимальна, и вывести эти элементы в порядке возрастания их индексов.

Array81. Дан массив размера N и целое число K (1 меньше или равен K < N). Осуществить сдвиг элементов массива вправо на K позиций (при этом $A_1$ перейдет в $A_{K+1}$, $A_2$ — в $A_{K+2}$, …, $A_{N–K}$ — в $A_N$, а исходное значение K последних элементов будет потеряно). Первые K элементов полученного массива положить равными 0.

Proc:

Proc20. Описать функцию TriangleP(a, h), находящую периметр равнобедренного треугольника по его основанию a и высоте h, проведенной к основанию (a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты. Для нахождения боковой стороны b треугольника использовать теорему Пифагора:
$b^2 = (a/2)^2 + h^2.$

Более менее какая никакая попытка с Array81, а точнее 2:
Код:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   int N,K,i,l,b,c;
int A;
cout <<"Vvedite N=";
cin >> N;
cout <<"Vvedite K=";
cin >> K;
float a[10];
for(i=0;i<N;i++)
{
cout <<" Vvedite element massiva=";
cin >> a[i];
}
l=a[0];
for(i=0;i<N+K;i++)
  {
   a[i]=a[i+K];
cout <<"\n Novui element massiva="<<a[i];
  }
  cout <<"\n Novui element massiva="<<l;

getch();
}



#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   int N,K,i,l,b,c;
int A;
cout <<"Vvedite N=";
cin >> N;
cout <<"Vvedite K=";
cin >> K;
float a[10];
for(i=0;i<N;i++)
{
cout <<" Vvedite element massiva=";
cin >> a[i];
}
l=a[0+K];
for(i=0;i<N+K;i++)
  {
   a[i]=a[i+K];
cout <<"\n Novui element massiva="<<a[i];
  }
  cout <<"\n Novui element massiva="<<l;

getch();
}

А с остальными ничего не выходит :-(

Ничего преподавателями не обяснялось. Все задачи самостоятельные. Идёт очень туго. Предыдущие решил, остались эти 3 до получения зачёта. Кто обладает знаниями в этой сфере прошу откликнуться.

 
 
 
 Re: Задачи на Одномерные массивы, Процедуры и функции на C++
Сообщение29.06.2012, 22:59 
Аватара пользователя
 i  Тема перемещена в Карантин.

Приведите свои попытки решения задач и объясните, что конкретно вызывает затруднения.

После того как исправите сообщение, сообщите об этом в теме Сообщение в карантине исправлено.
________________
Всякий, кто поступил в университет, но не хочет сам учиться - враг своей страны, подрывающий ее научно-технический, интеллектуальный и оборонный потенциалы.
(c) по мотивам сообщения Yuri Gendelman.

 
 
 
 Posted automatically
Сообщение30.06.2012, 11:40 
Аватара пользователя
 i  Тема перемещена из форума «Карантин» в форум «Программирование»

 
 
 
 Re: Задачи на Одномерные массивы, Процедуры и функции на C++
Сообщение05.07.2012, 09:58 
Fazer в сообщении #590472 писал(а):

Более менее какая никакая попытка с Array81, а точнее 2:
Код:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   int N,K,i,l,b,c;
int A;
cout <<"Vvedite N=";
cin >> N;
cout <<"Vvedite K=";
cin >> K;
float a[10];
for(i=0;i<N;i++)
{
cout <<" Vvedite element massiva=";
cin >> a[i];
}
l=a[0];
for(i=0;i<N+K;i++)
  {
   a[i]=a[i+K];
cout <<"\n Novui element massiva="<<a[i];
  }
  cout <<"\n Novui element massiva="<<l;

getch();
}



#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   int N,K,i,l,b,c;
int A;
cout <<"Vvedite N=";
cin >> N;
cout <<"Vvedite K=";
cin >> K;
float a[10];
for(i=0;i<N;i++)
{
cout <<" Vvedite element massiva=";
cin >> a[i];
}
l=a[0+K];
for(i=0;i<N+K;i++)
  {
   a[i]=a[i+K];
cout <<"\n Novui element massiva="<<a[i];
  }
  cout <<"\n Novui element massiva="<<l;

getch();
}




Как то так:
код: [ скачать ] [ спрятать ]
Используется синтаксис C
#include <stdio.h>

int main()
{
  const int n=10;
  float a[n];
  int i=0;
  for(i=0; i<n; i++)
    a[i]=i*i+0.5;
  for(i=0; i<n; i++)
    printf("%2.3f;  ",a[i]);
  printf("\n");

 int k;

  scanf("%d", &k);
  printf("k=%d\n", k);

  if((k<1)||(k>n))
  {
    printf("error: k=%d not in [1, %d]\n", k, n);
    return 1;
  }
    
       
    for(i=n-1; i>=0; i--)
   {
     if(i+k<n)
       a[i+k]=a[i];
     if(i<k)
       a[i]=0;
   }
  
for(i=0; i<n; i++)
    printf("%2.3f;  ",a[i]);
  printf("\n");
  

  return 0;

}

 

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group