Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 00:23   #1
Petrowa
Новичок
Джуниор
 
Регистрация: 08.06.2010
Сообщений: 1
По умолчанию Проверка правильности кода программы

Добрый вечер! Проверьте, пожалуйста, если можете, правильность написания кода программы для следующей задачи: Дана матрица 5*10. В каждой строке найти количество элементов, больших среднего арифметического всех элементов этой строки.

Код С++
Код:
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
      int average = 0, counter = 0;
        for (int j = 0; j < StringGrid1->RowCount; j++) {
                for (int i = 1; i < StringGrid1->ColCount; i++) {
                        average = average + (StringGrid1->Cells[i][j] != "" ? StrToInt(StringGrid1->Cells[i][j]) : 0);
                }
                average = average / (StringGrid1->ColCount - 1);
                for (int i = 1; i < StringGrid1->ColCount; i++) {
                         if (StringGrid1->Cells[i][j] != "" && StrToInt(StringGrid1->Cells[i][j]) > average) {
                                counter++;
                         }
                }
                StringGrid1->Cells[0][j] = counter;
                average = 0;
                counter = 0;
        }
}
 
//---------------------------------------------------------------------------
 
//---------------------------------------------------------------------------
Программа работает, но в первом столбце каждой строки выводит ноль, а не нужное значение (в Builder 2006).
Как исправить?..Заранее благодарна...уже не знаю куда обратиться.


Еще необходим код к другой задаче. Признаю, что нужна помощь,хотя прочитала уже достаточно.. Алгоритм может быть. Как именно вводятся мат. функции? Спасибо огромное заранее!

Написать в порядке возрастания числа sinx, cosx, lnx.

Последний раз редактировалось Petrowa; 08.06.2010 в 00:26.
Petrowa вне форума Ответить с цитированием
Старый 08.06.2010, 22:29   #2
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

В C++ массивы хранятся по строкам, т.е.
StringGrid1->Cells[i][j] i - индекс строки j - индекс столбца
У Вас везде написано наоборот (сначала столбец потом строка), в итоге результатом заполняется не первый столбец, а первая строка.
Для использования математических функций достаточно подключить файл
#include <math.h>
и затем можно напрямую вызывать функции sin(x) cos(x) log(x) и т.д.
n@sok вне форума Ответить с цитированием
Старый 03.03.2011, 09:35   #3
Игорь698
Новичок
Джуниор
 
Регистрация: 03.03.2011
Сообщений: 3
По умолчанию

#include "stdafx.h"
#include <conio.h>

int _tmain()
{
enum perc{1,8,46,52};
int IID,A;
float All,raz;
printf('100-(46+46)=8%\n');
{
Printf('46+8%=52% za II den\n');
IID=32;
raz=perc==8/IID;
printf('1%-\n'raz);
}
All=raz*perc==100;
printf('100% knigi=\t'all'Stor\n');
_getch();
{
я учусь програмировать на С++ и я хочу спросить что тут не правильно
Игорь698 вне форума Ответить с цитированием
Старый 03.03.2011, 11:58   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Неправильно тут прежде всего то, что вы написали не в своей теме и не выделили код тегом CODE.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.11.2015, 18:41   #5
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию

Цитата:
Сообщение от n@sok Посмотреть сообщение
В C++ массивы хранятся по строкам, т.е.
StringGrid1->Cells[i][j] i - индекс строки j - индекс столбца
У Вас везде написано наоборот (сначала столбец потом строка), в итоге результатом заполняется не первый столбец, а первая строка.
Для использования математических функций достаточно подключить файл
#include <math.h>
и затем можно напрямую вызывать функции sin(x) cos(x) log(x) и т.д.
Все зависит от среды, я так понимаю у ТС среда разработки borland turbo c++ 2006. В ней реализация наоборот:
StringGrid1->Cells[j][i] i - индекс строки j - индекс столбца
PROkaZZZniK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка правильности формулы... Klim Bassenger Microsoft Office Excel 3 12.01.2010 15:01
Проверка правильности IP адреса Nester Помощь студентам 2 23.08.2009 14:39
проверка правильности кода введенного в форму moidadir JavaScript, Ajax 1 13.07.2009 18:43
Проверка правильности ввода. Whiplash Паскаль, Turbo Pascal, PascalABC.NET 6 14.11.2008 18:00
Проверка правильности KORT Помощь студентам 3 23.04.2007 20:23