Listbox Как создать последовательность загрузки Имеется 3и Listbox. Под первым Listbox1 ячейка edit (вводим туда например 10) после чего нажимаем кнопку создать и в первом Listbox1 создается 10 записей, потом выбираем запись из Listbox1 и во второй edit вводим число 5 то есть должна получится некая последовательность массива (m[i,i2,i3]) и так далее для второго Listbox. Можно и другим способом. Надо вот организовать такую конструкцию (фото). Кому не сложно помогите сделать. А то замучился. Спасибо! Организовать на Delphi.
Пока ждал ответа написал сам вот может кому понадобится... #include <iostream.h> #include <stdio.h> #include <conio.h> using namespace std; struct str { double x; str *next; }; ///---------------------------------------------------------------------------------------------------------------------------------------- int main() { int i; int N=0; str*b; b=0; str*y; str**p=&b; printf("vvesti N "); scanf("%i",&N); for(i=0;i<N;i++) { double f; printf("%i=",i+1); scanf("%d",&f); y=new str; y->x=f; y->next=0; *p=y; p=&(y->next); } printf("\n"); //==================================== int L=0,l; int C,c; int t; double K,k; //большие буквы - весь список, маленькие - половина y=b; for(y=b; y!=0; y=y->next) L++; if (L%2==0) t=L; else t=L+1; printf("\n"); printf("L=%i\n", L); C=t/2; printf("C=%i\n", C); y=b; for (i=1; i<C; i++) { y=y->next; K=y->x; } printf("K=%d", K); //----------------------------------------------------------------------------- double S=0,s=0; y=b; for(y; y!=0; y=y->next) S=S+y->x; double Cr=S/N,cr; printf("\n"); printf("S=%d\n",S); printf("Cr=%d\n\n",Cr); l=C; printf("l=%i\n",l); if (l%2==0) t=l; else t=l+1; c=t/2; printf("c=%i\n",c); y=b; for (i=1; i<c; i++) { y=y->next; k=y->x; } printf("k=%d\n", k); y=b; for(i=0;i<=c;i++) { s=s+y->x; y=y->next; } printf("s=%d\n",s); cr=s/l; printf("cr=%d",cr); getch(); }
Прога на паскаль Составить программу, выводящую на экран, и в задаваемый с клавиатуры файл десятичное представление факториала. Должна быть работоспособна для вычисления 1000! Число тоже нужно задавать с клавиатуры. Задать факториал до 1000, вывести ответ на экран, создать текстовый файл с этим ответом. Плиз очень надо
Доказать свойство программы Пусть заданы описания const n= <конкретное целое значение>; var k, m: integer; x: array[1..n] of integer; Доказать свойство программы: {n>0} m:= x[1] k:=1; ПОКА k<n ДЕЛАТЬ k:= k+1; ЕСЛИ x[k]<m ТО m:= x[k] ВСЕ ЕСЛИ ВСЕ ПОКА; {n>0 & m<= x для всех i, 1<=i<= n} Как это можно доказать?
Должно работать не проверял. Мб где нить и ошибся проверить не где. {$N+} uses crt; var fact:extended; i,n:integer; F1:text; begin clrscr; readln(n); fact:=1; for i:=1 to n do fact:=fact*i; write(fact:0:0); assign (F1,'input.txt'); rewrite (F1); readln (F1,fact); close (F1); readkey; end.
Длинное умножение на ассемблере mips32 Надо реализовать функцию реализовывающую длинное умножение. Эта функция на С++ Code: int la,lb; len(a,b,la,lb); unsigned char* pa,*pb; pa = a + la - 1; pb = b + lb - 1; for(int i=0;i<DIGITS;++i){ c[i] = 0; } int max = 0; for(int i=0;i<la;++i){ int r = 0; for(int j=0;(j<lb) | r;++j){ if(i+j>max) max = i+j; int valA = *(pa - i) - '0'; int valB = *(pb - j) - '0'; if( pa-i<a ) valA = 0; if(pb-j<b) valB = 0; printf("%d\n",DIGITS-2-i-j); c[DIGITS-2-i-j] += valA * valB + r; //65 3 r = c[DIGITS-2-i-j] / 10; c[DIGITS-2-i-j] -= r*10; } } for(int i=DIGITS-2-max;i<DIGITS-1;++i) printf("%d",c[i]); printf("\n"); } На ассемблере Code: mul_: move $t9,$ra jal len nop addi $v0,-0x1 move $ra,$t9 #t9 is free now li $t9,49 li $t0,-0x1 mul_cls_cl: #clear cycle addi $t0,$t0,0x1 add $t1,$a2,$t0 sb $zero,0($t1) bne $t9,$t0,mul_cls_cl nop #now all registers free! add $s1,$a0,$v0 #pa add $s2,$a1,$v1 #pb + 1 addi $s2,$s2,-0x1 #pb li $t5,0 #max = 0 li $t0,-0x1 #main cycle i mul_mainI_cl: addi $t0,0x1 #i++ t0 is busy li $t2,0 #r = 0; li $t1,-0x1 #inner cycle j mul_innerJ_cl: addi $t1,0x1 #j++ sub $s3,$s1,$t0 #pa - i sub $s4,$s2,$t1 #pb - j lb $t3,0($s3) #*(pa - i) #valA ascii t3 is busy lb $t4,0($s4) #*(pb - j) #valB ascii t4 is busy nop add $s5,$t0,$t1 #i+j slt $t9,$t5,$s5 #max < i + j movn $t5,$s5,$t9 #if max < i+j then max = i + j #now s5 is free addi $t3,$t3,-0x30 #valA = *(pa - i) - '0'; addi $t4,$t4,-0x30 #valB slt $t9,$s3,$a0 #if( pa-i<a ) movn $t3,$zero,$t9 #valA = 0 slt $t9,$s4,$a1 #if( pb-j<b ) movn $t4,$zero,$t9 #valB = 0 li $s6,48 #DIGITS-2-i-j sub $s6,$s6,$s5 add $t6,$a2,$s6 #&c[DIGITS-2-i-j] mul $s7,$t3,$t4 lb $t7,0($t6) nop add $s7,$s7,$t2 add $t7,$t7,$s7 #c[DIGITS-2-i-j] += valA * valB + r; li $t9,0xA div $t7,$t9 mflo $t2 #r = c[DIGITS-2-i-j] / 10; mul $t8,$t2,$t9 # r*10 t9 is free sub $t7,$t7,$t8 #c[DIGITS-2-i-j] -= r*10; sb $t7,0($t6) sltu $t9,$t1,$v0 #(j<lb) or $t9,$t9,$t2 #(j<lb) | r bnez $t9,mul_innerJ_cl nop bne $t0,$v0,mul_mainI_cl #i!=la nop nop #MUL END all registers free, not t5 li $t1,48 sub $t0,$t1,$t5 add $t8,$a2,$t0 addi $t0,$t0,-0x1 mul_print: addi $t0,$t0,0x1 add $t2,$a2,$t0 lb $t3,0($t2) nop addi $t3,$t3,0x30 sb $t3,0($t2) bne $t0,$t1,mul_print nop move $a2,$t8 jr $ra nop При умножении 4841 и 98522. На ассемблере получаю не 476945002, а 476855002. Уже времени найти ошибку нет, голова не соображает уже, а сдать надо сегодня. Помогите найти косяк, пожалуйста.
Помогите с простым кодом: double z2(); //функция 2ой формулы double radian(); //перевод в радианы double a, grad; //объявление переменных const double pi = 3.1415926; int main() { setlocale(LC_CTYPE, ""); cout << "Введите значение в градусах: "; cin >> grad; // ввод значения в градусах cout << "Значение в градусах = " << grad << endl; cout << "Значение в радианах = " << radian() << endl; // вывод для проверки введенного и переведенного в радианы значения. cout << z1() << endl; cout << z2() << endl; system ("pause"); return 0; } double radian() { a = pi * grad / 180; return a; } double z1() { return cos(a) + sin(a) + cos(3 * a) + sin(3 * a); // решение 1 уравнения. } double z2() { return 2 * sqrt(2) * cos(a) * sin(Pi/a + 2 * a); // решение 2 уравнения. } Компилятор ургается так: Lab1.cpp Lab1.cpp(39) : error C2668: sqrt: неоднозначный вызов перегруженной функции C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\math.h(58 9): может быть "long double sqrt(long double)" C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\math.h(54 1): или "float sqrt(float)" C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\math.h(12 7): или "double sqrt(double)" при попытке сопоставить список аргументов "(int)" Lab1.cpp(39) : error C2065: Pi: необъявленный идентификатор В чем дело? Как исправить?
У меня не заработало, поэтому я немного переделал. Code: program Project2; {$APPTYPE CONSOLE} var fact:extended; n:integer; i:integer; F1:text; yn:char; label start; begin start: writeln; writeln; write('Vvedite chislo:'); readLn(n); fact:=1; for i:=1 to n do fact:=fact*i; assign (F1,'input.txt'); rewrite (F1); writeLn (F1,fact); close (F1); writeLn('Factorial=',fact); writeLn; write('Wanna more? y/n : '); readLn(yn); if(yn='y') then goto start; end. Но устроит ли автора ответ вида Vvedite chislo:1000 Factorial= 4.02387260077094E+2567 очень уж большие числа получаются...
Решите пожалуйста в паскале: Есть файл со строками, нужно вывести на экран девятый символ из пятой строки.
Code: program Project2; {$APPTYPE CONSOLE} var f:textfile; i:integer; a:array[1..100] of string; { допустим в файле 100 строк,статический массив,с динамическим будет чуть по иному.} s:string; begin assignfile(f,'C:\2.txt'); reset(f); for i:=1 to 100 do begin readln(f,a[i]); end; s:=a[5]; writeln(s[9]); closefile(f); readln; end.
Помогите, пожалйста, со следующим кодом: #include <iostream> #include <cmath> using namespace std; float raschet(); float func1(float a, float b, float xn); float func2(float a, float xn); float func3(float xn, float c); bool yslovie(int a, int b, int c); void shapka(); void podval(); float a, b, c, n, xn, xk, xstep, f, p; int main () { setlocale(LC_ALL, "Rus"); cout << "Программа расчета кусочной функции. \n"; cout << "Введите начальное значение аргумента: \n"; cin >> xn; cout << "Введите конечное значение рагумента: \n"; cin >> xk; cout << "Введите шаг: \n"; cin >> xstep; cout << "Переменная А: \n"; cin >> a; cout << "Переменная В: \n"; cin >> b; cout << "Переменная С: \n"; cin >> c; if (xn > xk && xstep > 0) cout << "Х-нач должно быть больше Х-кон при положительном шаге" << endl; else if (xn < xk && xstep < 0) cout << "Х-нач должно быть меньше Х-кон при отрицательном шаге" << endl; else if (xstep = 0) cout << "Шаг не может быть равным 0" << endl; p = yslovie(a, b, c); if ( p != 0) { raschet(); } return 0; } bool yslovie(int a, int b, int c) { int k; k = (a & b)|(a & c); return k; } float raschet() { shapka(); for(;xn < xk { if(xn + 5 < 0 && c = 0) f = func1(a, b, xn); else if(xn + 5 > 0 && c != 0) f = func2(a, xn); else if f = func3(xn, c); cout << "|" << n << "|" << xn << "|" << f << "| \n"; xn += xstep; n++; } podval(); return 0; } void shapka() { cout << "------------------------------------------ \n"; cout << "| " << "Счет итераций: " << "| " << "Текущий аргумент: " << "| " << "Значение функции: " << "| \n"; } void podval() { cout << "------------------------------------------ \n"; } float func1 (float a, float b, float xn) { return (1/a * xn) - b; } float func2 (float a, float xn) { return (xn - a) / xn; } float func2 (float xn, float c) { return (10 * xn) / c - 4; } Выдает такие ошибки: Lab.cpp(68) : error C2106: =: левый операнд должен быть левосторонним значением Lab.cpp(73) : error C2061: синтаксическая ошибка: идентификатор "f" Lab.cpp(106) : error C2084: функция "float func2(float,float)" уже имеет текст р еализации Lab.cpp(8): см. предыдущее определение "func2" Никак не могу понять где они.
Выделяй код соответствующими тегами. Code: #include <iostream> #include <cmath> using namespace std; float raschet(); float func1(float a, float b, float xn); float func2(float a, float xn); float func3(float xn, float c); bool yslovie(int a, int b, int c); void shapka(); void podval(); float a, b, c, n, xn, xk, xstep, f, p; int main () { setlocale(LC_ALL, "Rus"); cout << "Программа расчета кусочной функции. \n"; cout << "Введите начальное значение аргумента: \n"; cin >> xn; cout << "Введите конечное значение рагумента: \n"; cin >> xk; cout << "Введите шаг: \n"; cin >> xstep; cout << "Переменная А: \n"; cin >> a; cout << "Переменная В: \n"; cin >> b; cout << "Переменная С: \n"; cin >> c; if (xn > xk && xstep > 0) cout << "Х-нач должно быть больше Х-кон при положительном шаге" << endl; else if (xn < xk && xstep < 0) cout << "Х-нач должно быть меньше Х-кон при отрицательном шаге" << endl; else if (xstep = 0) cout << "Шаг не может быть равным 0" << endl; p = yslovie(a, b, c); if ( p != 0) { raschet(); } return 0; } bool yslovie(int a, int b, int c) { int k; k = (a & b)|(a & c); return k; } float raschet() { shapka(); if(xn < xk) { if(xn + 5 < 0 && c == 0) f = func1(a, b, xn); else if(xn + 5 > 0 && c != 0) f = func2(a, xn); else f = func3(xn, c); cout << "|" << n << "|" << xn << "|" << f << "| \n"; xn += xstep; n++; } podval(); return 0; } void shapka() { cout << "------------------------------------------ \n"; cout << "| " << "Счет итераций: " << "| " << "Текущий аргумент: " << "| " << "Значение функции: " << "| \n"; } void podval() { cout << "------------------------------------------ \n"; } float func1 (float a, float b, float xn) { return (1/a * xn) - b; } float func2 (float a, float xn) { return (xn - a) / xn; } float func3 (float xn, float c) { return (10 * xn) / c - 4; } Рабочий код. Обрати внимание, что у тебя идёт переопределение типов. С флоата в инт. Аяяй. Переделай. Дальше - твой цикла for(...) беспощаден. Я не знаю, что ты там хочешь с ним сделать, поэтому заменил на if - поправь как тебе надо. А вообще - брр.
Обрати внимание, что у тебя идёт переопределение типов. С флоата в инт. Аяяй. Переделай. Дальше - твой цикла for(...) беспощаден. Я не знаю, что ты там хочешь с ним сделать, поэтому заменил на if - поправь как тебе надо. А вообще - брр. А вот так? #include <iostream> #include <cmath> using namespace std; float raschet(); // Прототип функции рассчета формул. float func1(float a, float b, float xn); // Прототип функции первой формулы. float func2(float a, float xn); // Прототип функции второй формулы. float func3(float xn, float c); // Прототип функции третьей формулы. bool yslovie(int a, int b, int c); // Функция уловия. void shapka(); // Шапка таблицы. void podval(); // Подвал таблицы. int a, b, c, n, xn, xk, xstep, f, p; // Все необходимые переменные (все глобальные). int main () { setlocale(LC_ALL, "Rus"); cout << "Программа расчета кусочной функции. \n"; /* Ввод всех необходимых значений.*/ cout << "Введите начальное значение аргумента: \n"; cin >> xn; cout << "Введите конечное значение рагумента: \n"; cin >> xk; cout << "Введите шаг: \n"; cin >> xstep; cout << "Переменная А: \n"; cin >> a; cout << "Переменная В: \n"; cin >> b; cout << "Переменная С: \n"; cin >> c; if (xn > xk && xstep > 0) // Проверка корректности данных. cout << "Х-нач должно быть больше Х-кон при положительном шаге" << endl; else if (xn < xk && xstep < 0) cout << "Х-нач должно быть меньше Х-кон при отрицательном шаге" << endl; else if (xstep = 0) cout << "Шаг не может быть равным 0" << endl; p = yslovie(a, b, c); // Присваиваем р значение функции условия. if ( p != 0) // Если оно не равно нулю, то вызываем функцию расчета формул. { raschet(); } return 0; } bool yslovie(int a, int b, int c) // Функция условия, необхимая чтобы начать расчет. { int k; k = (a & b)|(a & c); // Локальной переменной присваиваем значение условия. return k; // И возвращаем ее. } float raschet() // Функция расчета. { shapka(); // Вызываем шапку таблицы. if(xn < xk) // Главный цикл программы. { if(xn + 5 < 0 && c = 0) // Если условие истинно, то вызываем(считаем) первую формулу. f = func1(a, b, xn); else if(xn + 5 > 0 && c != 0) // Если условие истинно, то вызываем(считаем) вторую формулу. f = func2(a, xn); else if // Если два предыдущих условия ложны, то вызываем третью формулу. f = func3(xn, c); cout << "|" << n << "|" << xn << "|" << f << "| \n"; // Вывод необходимых результатов. xn += xstep; // Пополняем начальное значение шагом. n++; // Пополняем счетчиик итераций. } podval(); // Вызываем подвал таблицы. return f; } void shapka() // Функция шапки таблицы. { cout << "------------------------------------------ \n"; cout << "| " << "Счет итераций: " << "| " << "Текущий аргумент: " << "| " << "Значение функции: " << "| \n"; } void podval() // Функция подвала таблицы. { cout << "------------------------------------------ \n"; } float func1 (float a, float b, float xn) // Функция первой формулы. { return (1/a * xn) - b; } float func2 (float a, float xn) // Функция второй формулы. { return (xn - a) / xn; } float func2 (float xn, float c) // Фунция трутьей формулы. { return (10 * xn) / c - 4; }
Что вот так?Ты привел опять свой код только откомментированный. Я тебе уже скинул рабочую версию в предыдущем моем посте. Хотя там по прежнему есть ошибки, например: bool yslovie(int a, int b, int c) // Функция условия, необхимая чтобы начать расчет. { int k; k = (a & b)|(a & c); // Локальной переменной присваиваем значение условия. return k; // И возвращаем ее. } У тебя метод имеет параметр bool, а возврщаешь ты int. И глобальные переменные у тебя все как int задекларированны, а используешь их как float. float raschet() // Функция расчета. { ... return f; } f у тебя опять же как инт, а метод как флоат.
Исчерпывающе... Ставь остановки и на выходе после каждой функции отслеживай значения и найдёшь проблемы.
bool yslovie(int a, int b, int c) // Функция условия, необхимая чтобы начать расчет. { bool k; k = (a & b)|(a & c); // Локальной переменной присваиваем значение условия. return k; // И возвращаем ее. } А такой вариант корректен?
Сама функция возвращает правильный тип. Но я без понятия, что ты тут хочешь присвоить: k = (a & b)|(a & c); // Локальной переменной присваиваем значение условия. Условие какое?Опиши.