Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пожалуйста помогите решить задачки на С++, Функции, процедуры 
:(
    Опции темы
ashnu
Дата 22.5.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.5.2006

Репутация: нет
Всего: нет



1. Описать процедуру ArrayTbMatrix1(A,K,M,N,B), формирующую по вещественному массиву A размера K матрицу B размера MxN (матрица заполняется элементами массива А по строкам). Лишние элементы полагаются равными 0. Двумерный массив B является выходным параметром. С помощью этой процедуры на основе данного массива A размера K и целых M и N сформировать матрицу B размера MxN.
2. Описать функцию DecompressStr(S) строкового типа, Восстанавливающую строку, сжатую процедурой CompressStr . Параметр S содержит cжатую строку; восстановленная строка является возвращаемым значением функции. С помощью функции DecompressStr восстановить пять данных строк.
3. Используя типы Tpoint, TTriangle и функцию Dist описать процедуру Heights(T,h1,h2,h3), находящую высоты h1,h2,h3 треугольника T (Т - входной параметр типа TTriangle, h1,h2,h3 - выходные вещественные параметры), проведенные соответственно из вершин T.A, T.B, T.C. С помощью этой процедуры найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A,B,C,D.

помогите пожалуйста 
PM MAIL   Вверх
Friackazoid
Дата 22.5.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 23.2.2006

Репутация: 1
Всего: 3



Ну почему никто не только не читает правила форума, но и даже то что выделенно  краснымцветомsmile 
    1 В задаче 2 уточните каким алгоритмом строка сжимаеться. Или алгоритм сжатия нодо придумать самому?
  
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
ashnu
Дата 22.5.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.5.2006

Репутация: нет
Всего: нет



можно использовать любой алгоритм 
PM MAIL   Вверх
Friackazoid
Дата 22.5.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 23.2.2006

Репутация: 1
Всего: 3



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

#include <iostream.h>
#include <conio.h>

void ArrayTbMatrix1 (float a[], int k, int N, int M, float **b)
{
  int z=0,j,i;
  for (i=0; i<N; i++)
    for (j=0; j<M; j++)
      if (z<k)
        { b[i][j]=a[z]; z++;}
      else b[i][j]=0;
}

int main(int argc, char* argv[])
{
  cout<<"ââåäèòå ðàçìåðíîñòü ìàññèâà À";
  int K;
  cin>>K;
  float *A= new float [K];
  for (int i=0; i<K; i++)
  {
    cout<<"Ââåäèòå ýëåìåíò "<<i<<" ìàññèâà À";
    cin>>A[i];
  }
  cout<<"Ââåäèòå ðàçìåðíîñòü ìàòðèöû Â";
  int n,m;
  cin>>n>>m;
  float **B=new float*[n];
  for (int i=0; i<n;i++)
    B[i]=new float [m];
  ArrayTbMatrix1 (A,K,n,m,B);
  for (int i=0; i<n; i++)
  {
    for (int j=0; j<m; j++)
      cout<<B[i][j]<<' ';
    cout<<'\n';
  }
  getch();
  delete []A;
  for (int i=0; i<n; i++)
    delete B[i];
  delete []B;
  return 0;
}

 smile  
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
Friackazoid
Дата 22.5.2006, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 23.2.2006

Репутация: 1
Всего: 3



Ой извините забыла что пользуюсь собственной функцие для перекодировки
Вот третья задача 
Код

#include <iostream.h>
#include <conio.h>
#include <math.h>
#pragma argsused

struct Tpoint
{
  double x,y;
};
struct Ttriangle
{
  Tpoint A, B, C;
};

double* Dist (Ttriangle trey)
{
  //длины сторон
  double AB=sqrt((trey.B.x-trey.A.x)*(trey.B.x-trey.A.x)+(trey.B.y-trey.A.y)*(trey.B.y-trey.A.y));
  double AC=sqrt((trey.C.x-trey.A.x)*(trey.C.x-trey.A.x)+(trey.C.y-trey.A.y)*(trey.C.y-trey.A.y));
  double BC=sqrt((trey.C.x-trey.B.x)*(trey.C.x-trey.B.x)+(trey.C.y-trey.B.y)*(trey.C.y-trey.B.y));
  //полупериметр
  double p=(AB+AC+BC)/2;
  double *h=new double[3];
  h[0]=(2/BC)*sqrt(p*(p-BC)*(p-AC)*(p-AB));
  h[1]=(2/AC)*sqrt(p*(p-BC)*(p-AC)*(p-AB));
  h[2]=(2/AB)*sqrt(p*(p-BC)*(p-AC)*(p-AB));
return h;
}

int main(int argc, char* argv[])
{
  Ttriangle ABC, ABD, ACD;
  cout<<"Enter A\n";
  cin>>ABC.A.x>>ABC.A.y;
  ABD.A.x=ABC.A.x;
  ABD.A.y=ABC.A.y;
  ACD.A.x=ABC.A.x;
  ACD.A.y=ABC.A.y;
  cout<<"Enter B\n";
  cin>>ABC.B.x>>ABC.B.y;
  ABD.B.x=ABC.B.x;
  ABD.B.y=ABC.B.y;
  cout<<"Enter C\n";
  cin>>ABC.C.x>>ABC.C.y;
  ACD.C.x=ABC.C.x;
  ACD.C.y=ABC.C.y;
  cout<<"Enter D\n";
  cin>>ACD.B.x>>ACD.B.y;
  ABD.C.x=ACD.B.x;
  ABD.C.y=ACD.B.y;
  double *H1,*H2,*H3;

  H1=Dist(ABC);
  cout<<"ABC:\n" ;
  for(int i=0; i<3; i++)
    cout<<H1[i]<<'\n';

  H2=Dist(ABD);
  cout<<"ABD:\n";
  for(int i=0; i<3; i++)
    cout<<H2[i]<<'\n';

  H3=Dist(ACD);
  cout<<"ACD:\n" ;
  for(int i=0; i<3; i++)
    cout<<H3[i]<<'\n';
  delete H1, H2, H3;
  getch();
  return 0;
}
 
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог
PM MAIL WWW ICQ GTalk   Вверх
ashnu
Дата 23.5.2006, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.5.2006

Репутация: нет
Всего: нет



большое спасибо
 
PM MAIL   Вверх
ashnu
Дата 23.5.2006, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.5.2006

Репутация: нет
Всего: нет



посмотри пожалуйста задачки которые be4 писал 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.