Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.05.2009, 19:03
|
|
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме: 394522
Репутация:
14
|
|
Есть задачка :
С клавиатуры вводится число - сумма денег n>7 !!! Нужно узнать можно ли выплатить эту суму купюрами по 5 и по 3 ??? Хотя если подумать то любую сумму можна выдать этими купюрами ! Все таки хотелось бы удивить толковое и короткое кишение на С++
Заранее СПС !
|
|
|

20.05.2009, 20:27
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 131
Провел на форуме: 1449774
Репутация:
127
|
|
C++ (Консольки)
1.
2. Логика в итоге должно получится либо тру либо фолс (Значок вниз=OR,^=AND,закорючка посередине=NOT)

|
|
|

20.05.2009, 20:33
|
|
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме: 409147
Репутация:
33
|
|
1)
написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до9 на слова "ноль", "один", .. "девять", начиная каждое предложение с новой строки.
В интернете есть такая уже, но мне надо на Borland C++ 3.1 а не 6.0 препод будет в шоке если она будет в 6 и с кучей непонятных переменных и прочее.. вот. выручайте, нужно очень срочно.
ВЗАМЕН СЕМИЗНАК
Последний раз редактировалось rubik-nerubik; 20.05.2009 в 21:43..
|
|
|

20.05.2009, 22:15
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
Провел на форуме: 7498
Репутация:
0
|
|
Помогите исправить ошибки, программа компилируется, но зависает.
Задан массив. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k;
int b[100];
int n;
int i;
cout<<"\nenter the size of array:";cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:\n",i);
scanf("%i",&a[i]);
}
if (a[0]>=0)
for(i=1;i=(n-1);i++)
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
else if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else if (a[0]<0)
for(i=1;n-1;i++)
if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
for(i=0;i<k;i++)
printf("%d", b[i]);
getch();
}
|
|
|

21.05.2009, 07:48
|
|
Новичок
Регистрация: 18.05.2009
Сообщений: 12
Провел на форуме: 129116
Репутация:
19
|
|
Сообщение от TR0J@N
C++ (Консольки)
1.
2. Логика в итоге должно получится либо тру либо фолс (Значок вниз=OR,^=AND,закорючка посередине=NOT)

Вот держи:
1)
PHP код:
# include <iostream.h>
# include <math.h>
int main()
{
double y = 0;
double a = 1.3;
double A = -4.6;
double b = pow (A,2) + pow (a,2);
y = pow( (atan (a/b) + a/2 * log10 (b)), 2) +
( pow(sin(b),3) + 7.6 ) /
( 2.3 * pow(10,5) + 2 * pow(a,2) + sqrt(b / fabs(A)) ) + A
;
cout << "=================================\n" << "y = " << y << "\n=================================\n" ;
return 0;
}
2)
PHP код:
# include <iostream.h>
# include <math.h>
int main()
{
bool Z = false;
int x = 7;
int y = -8;
bool a = true;
bool b= false;
Z = fabs(x + pow(y,2)) > 18 || x < 8*y && ! (a || sqrt( fabs(y)) + 2 == 26) || b;
if (Z == 0)
cout << "=================================\n" << "Z = FALSE" << "\n=================================\n" ;
else
cout << "=================================\n" << "Z = TRUE " << "\n=================================\n" ;
return 0;
}
|
|
|

21.05.2009, 08:53
|
|
Новичок
Регистрация: 18.05.2009
Сообщений: 12
Провел на форуме: 129116
Репутация:
19
|
|
Сообщение от Agregat
Помогите исправить ошибки, программа компилируется, но зависает.
Задан массив. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k;
int b[100];
int n;
int i;
cout<<"\nenter the size of array:";cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:\n",i);
scanf("%i",&a[i]);
}
if (a[0]>=0)
for(i=1;i=(n-1);i++)
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
else if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else if (a[0]<0)
for(i=1;n-1;i++)
if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
for(i=0;i<k;i++)
printf("%d", b[i]);
getch();
}
Ошибки:
1)при создании цикла, как следствие входим в вечный цикл
2) нехватка фигурных скобок
3) лишний цикл и переменная.
Вот рабочий код:
PHP код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k = 0;
int b[100];
int i;
cout<<"\nenter the size of array: ";
cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:",i+1);
scanf("%i",&a[i]);
}
for(i=1;i<max;i++)
{
if (a[i]<0)
{
if (a[i-1]>=0)
{
b[k]=i;
k=k+1;
}
}
else
if (a[i-1]<0)
{
b[k]=i;
k=k+1;
}
}
printf("\n\n3HaK MeH9ETC9 %d Pa3\nIHDEKCbI:", k);
for(i=0;i<k;i++)
printf(" %d; ", b[i]);
getch();
return 0;
}
|
|
|

21.05.2009, 23:26
|
|
Новичок
Регистрация: 18.05.2009
Сообщений: 12
Провел на форуме: 129116
Репутация:
19
|
|
Сообщение от 043nKRuT0y
Есть задачка :
С клавиатуры вводится число - сумма денег n>7 !!! Нужно узнать можно ли выплатить эту суму купюрами по 5 и по 3 ??? Хотя если подумать то любую сумму можна выдать этими купюрами ! Все таки хотелось бы удивить толковое и короткое кишение на С++
Заранее СПС !
Задачу решил.
Действительно ЛЮБУЮ СУММУ МОЖНО получить используя купюры 3 и 5 :
PHP код:
# include <iostream.h>
# include <math.h>
int main()
{
int x; // сумма денег
int i;
int j;
int z;
int y;
bool good;
cout << "\nVvedite Summu deneg -> "; // Введите сумму денег
cin >> x;
if (x > 7)
{
switch(x)
{
case 9:
z=0;y=9;good = true;break;
case 10:
z=10;y=0;good = true;break;
case 11:
z=5;y=6;good = true;break;
case 12:
z=0;y=12;good = true;break;
case 15:
z=15;y=0;good = true;break;
default:
for (i=0; i < x; i+=5) // шаг +5
{
for(j=0; j<x; j+=3) // шаг +3
{
if (i+j == x) {y = j; z = i; good = true;}
}
}
}
if (good == true)
{
cout << "\n\nViplatit mogno!\n"; // Выплатить можно!
cout << "\n\nNugno \"5\": " << z/5 << "\n\nNugno \"3\": " << y/3 << "\n\n"; // Нужно столькото "троек" и столькото "пятерок"
}
else
cout << "\n\nViplatit nelza!\n"; // Выплатить нельзя!
}
else
{
cout << "\n\nChislo dolgno bit > 7\n"; // число должно быть больше 7
}
return 0;
}
Тут код + ЕХЕ
|
|
|

22.05.2009, 00:35
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
Провел на форуме: 7498
Репутация:
0
|
|
Сообщение от Suteki
Ошибки:
1)при создании цикла, как следствие входим в вечный цикл
2) нехватка фигурных скобок
3) лишний цикл и переменная.
Вот рабочий код:
Спасибо большое! 
|
|
|

22.05.2009, 16:11
|
|
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме: 394522
Репутация:
14
|
|
Сообщение от rubik-nerubik
1)
написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до9 на слова "ноль", "один", .. "девять", начиная каждое предложение с новой строки.
В интернете есть такая уже, но мне надо на Borland C++ 3.1 а не 6.0 препод будет в шоке если она будет в 6 и с кучей непонятных переменных и прочее.. вот. выручайте, нужно очень срочно.
ВЗАМЕН СЕМИЗНАК
Если еще нужно - вот наклепал :
Код:
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <string.h>
int main(void){
clrscr();
FILE *F;
char str[99];
char c;
F = fopen("C:\FILE.txt","r");
if(F == NULL){
cout<<"FILE read error !";
return 1;
}
while(!feof(F)){
fgets(str,100,F);
}
cout<<str;
for(int i = 0; i < strlen(str); i++){
c = str[i];
switch(c){
case '0' :
cout<<endl<<"zero"<<endl;
break;
case '1' :
cout<<endl<<"one"<<endl;
break;
case '2' :
cout<<endl<<"two"<<endl;
break;
case '3' :
cout<<endl<<"three"<<endl;
break;
case '4' :
cout<<endl<<"four"<<endl;
break;
case '5' :
cout<<endl<<"five"<<endl;
break;
case '6' :
cout<<endl<<"six"<<endl;
break;
case '7' :
cout<<endl<<"seven"<<endl;
break;
case '8' :
cout<<endl<<"eight"<<endl;
break;
case '9' :
cout<<endl<<"nine"<<endl;
break;
}
}
fclose(F);
getch();
return 0;
}
|
|
|

22.05.2009, 18:47
|
|
Новичок
Регистрация: 21.05.2009
Сообщений: 1
Провел на форуме: 4897
Репутация:
0
|
|
помоги пожалуйсто с лабораторной работой,вот задание:
1) Написать программу вычисления коэффициента конкордации ранжирования параметров для произвольного количества объектов, параметров и экспертов.
2) Выбрать предметную область изучения, объекты изучения и разработать список характеризуемых параметров. Произвести опрос 5 человек и получить:
• Ранжированную таблицу параметров (цифровой ранг от наименее значимый параметр до наиболее значимый).
• Таблицу экспертных оценок значений параметров.
• Коэффициент конкордации ранжирования параметров.
• Предпочтительный вариант для каждого из экспертов.
3) Привести не менее 3 тестов для различного количества экспертов и вариантов ранжирования.
4) Сделать выводы о влиянии на результаты экспертизы количественного и качественного состава экспертов.
есть готовая работа написанная на си шарпе,если можно то просто измените код программы,т.к. работу эту уже сдали и как бы чтобы не повторялось,нужно изменить код написания программы...вот сам листинг:
public partial class Form1 : Form
{ public List<string> ObjectName = new List<string>();
ObjectViewer ob;
int cnt_exp;
private float[,] values = null;
public Form1()
{ InitializeComponent();
}
private void btnAddObject_Click(object sender, EventArgs e)
{ if (tbxObjectName.Text == "")
return;
ObjectName.Add(tbxObjectName.Text);
if (comboBox1.Items.Count == 0)
{ comboBox1.Items.Add("выбрать все");
}
comboBox1.Items.Add(tbxObjectName.Text);
// MessageBox.Show("Объект добавлен");
tbxObjectName.Text = "";
}
private void btnSubjectListView_Click(object sender, EventArgs e)
{ ob = new ObjectViewer();
for (int i = 0; i < ObjectName.Count; i++)
{
Label l = new Label();
l.Parent = ob;
l.Location = new System.Drawing.Point( 1, 1+i*25);
l.Name = "lblObjectItem"+i.ToString();
l.Text = "объект";
TextBox tbx = new TextBox();
tbx.Parent = ob;
tbx.Location = new System.Drawing.Point(100, 1 + i * 25);
tbx.Name = "tbxObjectItem" + i.ToString();
tbx.Text = ObjectName[i];
}
ob.ShowDialog(); }
private void btnRnnTest_Click(object sender, EventArgs e)
{ if (dataGridView1.Rows.Count > 0)
{while (dataGridView1.Rows.Count>0)
{ dataGridView1.Rows.RemoveAt(0);
}
}
if (dataGridView1.Columns.Count > 2)
{while (dataGridView1.Columns.Count > 2)
{dataGridView1.Columns.RemoveAt(2);
}
}if (tbxSubjectName.Text == "")
{MessageBox.Show(this, "название предметной области не может быть пустым!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ObjectName.Count == 0)
{MessageBox.Show(this, "Список объктов пуст, добавьте хотя бы один объект!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} if (textBox1.Text == "")
{MessageBox.Show(this, "Введите число экспертов!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} try
{
cnt_exp = int.Parse(textBox1.Text);
}
catch
{
MessageBox.Show(this, "Не корректно введено число экспертов!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// добавляем столбцы
for (int i = 0; i<cnt_exp; i++)
dataGridView1.Columns.Add("user"+i.ToString(),"э сперт"+i.ToString());
for (int i = 0; i < ObjectName.Count; i++)
{
dataGridView1.Rows.Add(new string[] { ObjectName[i], (i+1).ToString()});
} dataGridView1.Enabled = true;
dataGridView1.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
int index = comboBox1.SelectedIndex;
if (index < 0)
return;
if ( index == 0) // удаляем все
{
ObjectName.RemoveAll(EndsWithSaurus);
comboBox1.Items.Clear();
return;
}
ObjectName.RemoveAt(index-1);
comboBox1.Items.RemoveAt(index-1);
}
private static bool EndsWithSaurus(String s)
{
return true;
}
private float isSetVal(float value, int rows, int colums)
{
float val_count = 0;
for (int i=0; i<rows; i++)
{
if (values[i, colums] == value)
{
val_count++;
}
}
return val_count;
}
private void button2_Click(object sender, EventArgs e)
{
if (!dataGridView1.Visible)
return;
if (dataGridView1.Columns.Count > 2 + cnt_exp)
{
while (dataGridView1.Columns.Count > 2 + cnt_exp)
{
dataGridView1.Columns.RemoveAt(2 + cnt_exp);
}
}
values = new float[dataGridView1.Rows.Count, cnt_exp + 3];
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 2, c = 0; c < cnt_exp; j++, c++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
string buf = dataGridView1.Rows[i].Cells[j].Value.ToString();
if (buf == "")
{
MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int val;
try
{
val = int.Parse(buf);
}
catch
{MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} if (val < 1 || val > ObjectName.Count)
{ MessageBox.Show(this, "не корректно введены данные! Недопустимое значение", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} values[i, c] = val;
}
}
// считаем сумму рангов для каждого эксперта
dataGridView1.Columns.Add("summ_rang", "Сумма рангов");
float rang_sum_all_expert = 0; // Оцениваем среднеарифметическое число рангов
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
float rang_sum = 0;
for (int j = 0; j < cnt_exp; j++)
{
rang_sum += values[i, j];
}
values[i, cnt_exp] = rang_sum;
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 1].Value = (values[i, cnt_exp] as object);
rang_sum_all_expert += rang_sum;
}
float srednee_rang = rang_sum_all_expert / dataGridView1.Rows.Count; // Отклонение от среднего
dataGridView1.Columns.Add("rang", "Ранжировка");
dataGridView1.Columns.Add("otkl_sred", "Отклонение от среднего");
dataGridView1.Columns.Add("otkl_sred_kvadrat", "Квадрат отклонения");
float kvadrat_summ = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
values[i, cnt_exp + 1] = values[i, cnt_exp] - srednee_rang;
values[i, cnt_exp + 2] = values[i, cnt_exp + 1] * values[i, cnt_exp + 1];
kvadrat_summ += values[i, cnt_exp + 2];
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 3].Value = ((float)values[i, cnt_exp] / (float)rang_sum_all_expert as object);
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 2].Value = (values[i, cnt_exp + 1] as object);
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 1].Value = (values[i, cnt_exp + 2] as object);
}
//Определяем величину коэффициента конкордации:
float konkord_kof;
/*
* для определения связанных рангов
*/
List<float> val_list = new List<float>();
float T = 0;
for (int j = 0; j < cnt_exp; j++)
{
int group_count = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
float val_cnt = isSetVal(values[i, j], i, j);
if (val_cnt == 1)
{
group_count++;
val_list.Add(values[i, j]);
}
}
/// подчет Tj – показатель связных рангов
///
for (int t = 0; t < group_count; t++)
{
float h = isSetVal(val_list[t], dataGridView1.Rows.Count, j);
T += (h*h*h-h);
}
val_list.Clear();
}
if (T>0) // определяем есть ли связанные ранги
{
konkord_kof = 12 * (float)kvadrat_summ / ((float) cnt_exp * (float)cnt_exp * ((float)dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count - (float) dataGridView1.Rows.Count) - (float) cnt_exp * (float) T);
}
else
konkord_kof = 12 * (float) kvadrat_summ / ((float) cnt_exp * (float) cnt_exp * ( (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count - (float) dataGridView1.Rows.Count));
textBox2.Text = konkord_kof.ToString(); } }
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|