Подскажите с решением.

  • Автор темы Katusha
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Katusha

Гость
#1
Ребята, помогите чем сможите, нам по программированию задали решить четыре задачки, я раньше никогда не сталкивалась с ним и не представляю как его решать. К тому же преподаватель попался упёртый, не изъявил желания нам помогать, а задачи эти надо решить. Помогите чем сможите, пожалуйста.
Программирование на языке C, C++
1 Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу n.
2 Дан массив натуральных чисел, найти сумму элементов, кратных данному n.
3 Треугольник задан координатами своих вершин. Составить программу вычисления его площади.
4 Дана строка. Удалить из неё всё лишние пробелы, оставив между словами не более одного. Результаты поместить в новую строку.
 
K

Katusha

Гость
#2
Форум программистов называется, а не кто не знает как решать.
 
B

Barmutik

Гость
#3
Вот именно .. это форум программистов а не форум решателей задач..

Если надо помочь .. отправляйтесь в раздел работы и спрашивайте кто Вам за сколько это решит...
 
K

Katusha

Гость
#4
Могли бы хоть что-нибудь подсказать.
Куда только все добрые люди делись... :(
 
A

Afrael

Гость
#5
Не понятен сам вопрос, в чем именно вы испытываете трудности :
1. В реализации алгоритмов на языке С++.
2. Или вам не понятен сам подход : те например как можно вычислить площадь зная треугольника зная его координаты.

По первому пункту Вы можете или задать конкретные вопросы, или попросить и заплатаить за услуги репетитора - если Вам совершенно не знаком язык.
2. По второму пункут так же - если вы хотите получить конкретные ответы - то задавайте вопросы точнее - что именно вам неясно.

Есть конечно и третья возможность,если описанные Вами выше задачи нужны Вам только чтобы "сдать и забыть", то имеет смысл послушаться совета Barmutik и заплатить кому-то за решение 4-х лабораторных работ.
 
B

Barmutik

Гость
#6
Вам уже правильно указали .. если бы у Вас была какая-то конкретная проблема .. или ошибка .. то Вам бы однозначно подсказали как её исправить ..

Ну вот просить сделать за Вас Вашу работу .. это не много оригинально :(
 
K

Katusha

Гость
#7
Хорошо, я поняла.
Может тогда посмотрите что тут не работает, по четвёртому заданию.
void __fastcall
{
char* s = Edit1->Text.c_str();
int c=0;
for (int i = strlen(s)-1; i>=0; i--)
{
if (s==' '){break;}
else if (s==' ')c++;
}
}
 
H

Hetman

Гость
#8
Я конечно не спец по Си, но помойму здесь что-то не логично:
<!--QuoteBegin-Katusha+16:10:2006, 19:54 -->
<span class="vbquote">(Katusha @ 16:10:2006, 19:54 )</span><!--QuoteEBegin-->
Код:
if (s[i]==' '){break;}
else if (s[i]==' ')c++;
[/quote]

В условии в двух местах есть тобишь и там и там один пробел, может в одно случае в условии указать два, а затем один из них вырезать?
 
A

Afrael

Гость
#9
и вы работаете все время с одной строкой попробуйте реузлутаты вынести примерно следующим образом

{
char* s = Edit1->Text.c_str();
char* result;

for (int i = strlen(s)-1; i>=0; i--)
{
if (s==' ' && s[i+1]==' '){
continue;
}else{
c=s;
}
}
 
K

Katusha

Гость
#10
Проверти пожалуйста третье задание, всё работает, вот только результат получился немного не тот.
Может заодно подскажите как записывать степень?
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#include <stdio.h>
#include <math.h>
#include <conio.h>

void main ()
{
float x1, x2, x3, y1, y2, y3, a, b, c, p, S;
printf("\nx1="); scanf("%f",&x1);
printf("\nx2="); scanf("%f",&x2);
printf("\nx3="); scanf("%f",&x3);
printf("\ny1="); scanf("%f",&y1);
printf("\ny2="); scanf("%f",&y2);
printf("\ny3="); scanf("%f",&y3);
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-B)*(p-c));
printf("Ploschad ravna=%f",S);
getch ();
}

//---------------------------------------------------------------------------
Мне бы хотя бы три задания сделать.
С первым тоже что-то не то.
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#include <stdio.h>
#include <conio.h>
void main ()
{
int a, b, c, n, i;
printf("\n="); scanf("%d",&n);
for (i=100; i<1000; i++);
{
a=i/100;
b=(i%100-i%10)*10;
c=i%10;
if(a+b+c==n);
}
printf("kolichistvo hisel=%d",a);
printf("kolichistvo hisel=%d",B);
printf("kolichistvo hisel=%d",c);
getch ();
}
//---------------------------------------------------------------------------
 
K

Katusha

Гость
#11
Всё, третье работает, второе тоже, помогите хотя бы первое до ума довести, пожалуйста.
 
6

62316e

Гость
#12
1 Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу n.
Код:
void main()
{
int start(100), end(1000);

int n(666);
int count(0);

for(int j=start; j<end; j++)
{
int m;
int s4((m = j) % 10 );
int s3((m = m/10) % 10 );
int s2((m = m/10) % 10 );
int s1((m = m/10) % 10 );

if (s1 + s2 + s3 + s4 == n)
count++;
}
}
Если я конечно правельно понял.
 
6

62316e

Гость
#13
Код:
void main()
{
#define A %10
#define B /10
#define C m=m
int a,b,c,d,m,ret(0),s(100),e(1000), n(13);
for(int j=s-1; j<e; j++, d = (m = j) A, c = (C B) A, b = (C B) A , a = (C B) A )
if (a + b + c + d == n) ret++;
}
- В коде вроде ошыбка(хотя он компилитса и работает также как и привидучий пример. Проблема может быть с диапазоном. Ну для даной задачи все ок ). Если будеш здавать препадам - сразу и провериш)
 
K

Katusha

Гость
#14
Препод очень долго думал над первым заданием, потом сказал что оно не доделано.
За всю эту работу я получила четыре, учитывая что я рассчитывала хотя бы на три.
Всем спасибо за то что обратили внимание к моей скромной персоне. :unsure:

В следующий семестр обещали системное программирование, кто-нибудь знает с чем его едят? По слухам это асемблер, что от него ждать и как к нему подготовиться, что бы не вышло как с C.
 
6

62316e

Гость
#15
Препод очень долго думал над первым заданием, потом сказал что оно не доделано.
Что значит "оно не доделано"? -говорил я что надо было ему второй вариант показать. Или наверно он хотел вместо цыкла рекурсию увидеть?

В следующий семестр обещали системное программирование, кто-нибудь знает с чем его едят? По слухам это асемблер, что от него ждать и как к нему подготовиться, что бы не вышло как с C.
Один поток - один вопрос.
 
6

62316e

Гость
#16
2 Дан массив натуральных чисел, найти сумму элементов, кратных данному n.
Ничего не понял...

<!--shcode--><pre><code class='highlight'>#include <iostream>
#include <conio.h>
using namespace std;

void main (void)
{
int maxN = 0;
int sum = 0;
int n = 1;

cout << "Enter element count: ";
cin >> maxN;

int* pData = new int[maxN];
cout << "Enter element values: ";
for (int i=0; i<maxN; i++, pData++)
{
cin >> (*pData );
}

cout << "Enter n (Should be greater then zero): ";
cin >> n;

pData-= maxN;
for (int i=0; i<maxN; i++)
{
if (pData % n == 0)
sum += i;
}
std::cout << sum <<n;
getch();
}[/CODE]

Только не вздумайте этот код куда-то показывать.. а то точно выгонят. :)
 
Статус
Закрыто для дальнейших ответов.