PDA

Просмотр полной версии : Студентам с лабораторными сюда


Страницы : 1 2 3 [4] 5 6 7 8 9 10 11 12

Vasiliusis
14.11.2008, 12:49
Добрый день.
Скажите пожалуйста, почему различаются результаты при выполении арифметических операций на чистом С++ и при использовании АССЕМБЛЕРНОЙ ВСТАВКИ?

#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;

BYTE ddS = 10;
BYTE ccS = 10;
BYTE aS = 6;

WORD NUM;

void main()
{
__asm
{
MOV AL, ccS
SUB AL, aS
INC AX
PUSH AX
MOV AL, ccS
MOV BL, ddS
CBW
DIV BL
PUSH AX
MOV AL, 3
MOV BL, aS
MUL BL
MOV BL, 2
CBW
DIV BL
POP BX
ADD AL, BL
POP BX
CBW
DIV BL
MOV NUM, AX
}
cout<<"ASSEMBLER = "<<NUM<<endl;
cout<<"C++ = "<<setprecision(3)<<showpoint<<(static_cast<float>(ccS)/ddS+(3*aS)/2)/(ccS-6+1)<<endl;
system("PAUSE");
}
Сейчас все сходится.

Но можете взять отличные от этих значения - увидите результат.
Нужно для вывода по лабе.

Благодарствую.

groupby
14.11.2008, 21:29
потому что DIV и MUL работают с целыми числами. А на си, как я вижу ты работаешь с float

Vasiliusis
15.11.2008, 08:38
потому что DIV и MUL работают с целыми числами. А на си, как я вижу ты работаешь с float
Т.е. если я уберу static_cast, то результаты сойдутся, так?

groupby
15.11.2008, 13:38
Сходится все равно не всегда будут :)

Потому что если у тебя в процессе вычислений появятся отрицательные числа, то на асме у тебя снова не то получится :) Нужно использовать команды IMUL, IDIV, SBB, ADC и т.д. Учи мат часть )

043nKRuT0y
15.11.2008, 14:19
Народ помогите доделать/исправить :
Во общем нужно :
1 - создать список целых значений
2- каждое новое значение должно входить в список только если раньше не встречалось !
3 - вывести список на екран !

У меня список создаетса , выводитса , но вот проверка на повторяемость не получается (она в программе закоментирована ) если ее раскоментировать то программа не работает ! Подскажите как организовать проверку ...
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <ctype.h>
# include <conio.h>
# include <iostream.h>

#define MAX 100


typedef struct {
int elements[MAX];
int count;
} listtype;

void list_reset(listtype *list) {
list->elements[0]=0;
list->count=0;
}

void list_add(listtype *list,int element)
{
/* for(int i=0 ; i<list->count;i++)
{
if(list->elements[i] == element)
{
printf("Element [%i] is consist ! Input other el !",element);
getch();
}
else{*/
if (list->count != MAX)
list->elements[list->count++]=element;
//}
//}
}

void list_print(listtype *list){
int i;
for(i = 0;i < list->count;i++)
{
printf("Element[%i] = %i\n",i+1,list->elements[i]);
}
}

void main ()
{
clrscr();
listtype list;
int el;
list_reset(&list);
char c;
int K;
cout <<"Input First El :";cin>>el;
list_add(&list,el);
cout <<"\nAdd El ? [Y/N]";cin>>c;
while (c == 'Y' || c == 'y')
{
cout <<"\nInput El:";cin>>el;
list_add(&list,el);
cout <<"\nAdd El ? [Y/N]";cin>>c;
}
cout <<"\nPrint List ?[Y/N]";cin>>c;
if(c == 'Y' || c == 'y')
{
list_print(&list);
getch();
}
getchar();
}

velvetdust
15.11.2008, 16:46
Помогите нарисовать блок-схему, очень надо!

1.3 Дано число. Определить, равна ли сумма двух первых цифр числа сумме двух его последних цифр

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

int s1, s2;
long step (int i)
{
int g = 1, j;
for (j = 1; j < i; g *= 10, j++);
return g;
}

int main ()
{
int k;
printf ("Enter your number: ");
scanf ("%d", &k);

int l = k, g = 1;

while (l / 10 > 0)
{
l /= 10;
++g;
}

s1 = k / step (g) + (k / step (g - 1) % 10);
s2 = k % 10 + (k / step (2)) % 10;
return 0;
}
printf ("\n Summa dvuh mladshih cifr chisla ravna %d", s1);
printf ("\n Summa dvuh starshih cifr chisla ravna %d", s2);
if (s1 == s2)
{
printf("\n Summy ravny");
}
else
{
printf("\n Summy ne ravny");
}
getch();

criz
15.11.2008, 17:46
velvetdust, блок-схему рисуют, ну или строят :)
Что-то мне подсказывает, что код не дописан... :)

velvetdust
16.11.2008, 18:20
Нарисуйте хоть бы по этому коду))) Пожалуйста, очень надо!

vikseriq
16.11.2008, 19:37
0 Инициализация
1 Вводим числа = строка .
2 Перегоняем в int два первых и два последних символа (способов много)
3 a = a1+a2; b = b1+b2;
4 если a == b пишем Ура иначе пишем Облом
5 чистим память и выводим копирайты )

0verbreaK
16.11.2008, 20:21
velvetdust хоть почитай как строятся блок схемы, там делов на 30 минут.
http://ru.wikipedia.org/wiki/Блок-схема

Ну или же воспользуйся автосоставителем блок схем
http://www.fceditor.nm.ru/

Лучше самому разобраться.

AgS
17.11.2008, 11:55
Народ срочно помогите плиз, надо на паскале написать 4 проги:

Составить программу:
для определения среднего арифметического и среднего геометрического трёх действительных чисел

Составить программу для вычисления:
http://img90.imageshack.us/img90/3364/pic1ze8.th.gif (http://img90.imageshack.us/my.php?image=pic1ze8.gif)http://img90.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
program 1
uses vincrt;
var x,y,a,s,z: real;
begin
write ('x='), readln (x);
write ('y='), readln (y);
a:=cos(1+cos(x-y)/(x/y)+sqr(y))
s:=cos(sin(ln(abs(x/y))))
if x*y < 1/2 then z:=a*a*a
else if x*y >= 1/2 then z:=s*s*s
write ('z:=')
end

составить программу, которая определяет принадлежит ли точка с координатами (x,y) заштрихованной области.
Координаты точки ввести с клавиатуры:
http://img90.imageshack.us/img90/3473/pic2ne3.th.gif (http://img90.imageshack.us/my.php?image=pic2ne3.gif)http://img90.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
тут скорее не знаю формулу для вычисления программы - саму прогу допёр как написать примерно.

Составить программу для вычисления таблицы значений функции f(x) для x принадлежащего к [a,b]
с заданным шагом изменения x:
http://img220.imageshack.us/img220/9191/pic3vc7.th.gif (http://img220.imageshack.us/my.php?image=pic3vc7.gif)http://img220.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Это вообще незнаю как сделать, помогите плиз.

Чем быстрее тем лучьше, Заранее благодарен за помощь.

groupby
17.11.2008, 13:09
Народ срочно помогите плиз, надо на паскале написать 4 проги

Бесплатно никто писать программы тебе не будет с нуля.

Сделай хоть что-то, и напиши в каких моментах у тебя не получается.

Cereus
17.11.2008, 15:03
Народ срочно помогите плиз, надо на паскале написать 4 проги:

Составить программу:
для определения среднего арифметического и среднего геометрического трёх действительных чисел

...
Чем быстрее тем лучьше, Заранее благодарен за помощь.

Не ленись, не зевай!

Cereus
17.11.2008, 16:28
Всем доброго времени суток.
Мне необходима помощь: пишу программу под винду на Delphi7, необходимо чтобы при закрытии появлялся значек/кнопка в системном трее. При клике на этот значек окно программы открывается. Только если можно - подробно, с комментариями

0verbreaK
17.11.2008, 17:07
Cereus в раздел Делфи запости. Тема поднималась дохрена раз, посмотри на ориентированном форуме, типа forum.sources.ru или в БД Делфи

Sinay
17.11.2008, 20:19
Народ срочно помогите плиз, надо на паскале написать 4 проги:

Составить программу:
для определения среднего арифметического и среднего геометрического трёх действительных чисел

Составить программу для вычисления:
http://img90.imageshack.us/img90/3364/pic1ze8.th.gif (http://img90.imageshack.us/my.php?image=pic1ze8.gif)http://img90.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
program 1
uses vincrt;
var x,y,a,s,z: real;
begin
write ('x='), readln (x);
write ('y='), readln (y);
a:=cos(1+cos(x-y)/(x/y)+sqr(y))
s:=cos(sin(ln(abs(x/y))))
if x*y < 1/2 then z:=a*a*a
else if x*y >= 1/2 then z:=s*s*s
write ('z:=')
end

составить программу, которая определяет принадлежит ли точка с координатами (x,y) заштрихованной области.
Координаты точки ввести с клавиатуры:
http://img90.imageshack.us/img90/3473/pic2ne3.th.gif (http://img90.imageshack.us/my.php?image=pic2ne3.gif)http://img90.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
тут скорее не знаю формулу для вычисления программы - саму прогу допёр как написать примерно.

Составить программу для вычисления таблицы значений функции f(x) для x принадлежащего к [a,b]
с заданным шагом изменения x:
http://img220.imageshack.us/img220/9191/pic3vc7.th.gif (http://img220.imageshack.us/my.php?image=pic3vc7.gif)http://img220.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Это вообще незнаю как сделать, помогите плиз.

Чем быстрее тем лучьше, Заранее благодарен за помощь.

задачи ведь легкие...
и действительно бесплатно делать никто не будет,тем более 4 о_О

AgS
17.11.2008, 20:53
Sinay извини конечно, если я только начал заниматься этим а ты занимаешься давольно давно то конечно тебе это легко, если бы я знал как сделать наверно просто так бы не написал? Если поделу не пишите то нахрена форум заполнять тупой информацией??

FastWast
17.11.2008, 22:22
Нужно найти сумму положительных элементов строк , их записать в массив , массив с результатом вывести на экран примерно так : b = [1,4,6......] , где 1,4,6.... - суммы положительных элементов строк.
Сумму положительных я нахожу, но как их в новый массив записать - хз. Ошибку выдает.
Надеюсь на помощь ...

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

int main()
{
int m,i,j;
double sum=0;

cout << "Enter size of matrix:";cin >> m;


double **a = new double*[m]; // Память под массив
for(int i=0;i<m; i++)
{
a[i] = new double [m];
}
for(i=0;i<m;i++)
{
for (j=0;j<m;j++)
{
cout << "\nEnter a[" <<i+1<< "," <<j+1<< "]=";cin >> a[i][j];
}
}
cout<<"\nAmount of not negative elements in rows : "<<endl;


for(int i=0; i<m; i++) // Находим сумму положительных
{ // элементов строк
for(int j=0;j<m;j++)
{
if(a[i][j]>0)
{
sum+=a[i][j];
}
sum=0;
}
}

for (int i = 0; i < m; i++) // Освобождение памяти
{
delete [] a[i];
}

getch();
return 0;
}

Sinay
17.11.2008, 22:39
Sinay извини конечно, если я только начал заниматься этим а ты занимаешься давольно давно то конечно тебе это легко, если бы я знал как сделать наверно просто так бы не написал? Если поделу не пишите то нахрена форум заполнять тупой информацией??
)))
проблема в том,что это стандартные задачи,которые проходят в школе,пишут в учебниках
они решаются стандартными средствами

Sinay
17.11.2008, 22:46
1)я бы оформил функцией вычисляющей f и используй стандартные функции паскаля
2)ifом проверяй по абциссе и ординате и все
3)for i:= 1 to n то выражение,а вместо х подставляй i mod 10
вроде все

Cereus
17.11.2008, 23:19
AgS
1) Если тебе отказали в ответе это еще не значит, что форум отстойник. Попробуй напиши сначала сам, а там что не получится - обращайся, ну... или... действительно заплати кому нибудь денег...
2) Ты не только что начал изучать Pascal - твои задачи, скажем так, из разных тем: линейное программирование, графика, циклическое программирование. Что-то мне подсказывает, что ты усиленно прогуливал пары/уроки (нужное подчеркнуть), а сейчас препод схватил тебя за яйки вот ты и прибежал сюда в поисках халявы
3)Будем милостивы :-), ибо чем больше в армии дубов тем крепче оборона:

program name;
var a,b,c:real;
srArif,SrGeometr:real;

begin
writeln ('Заполните данные');
write ('Введите значение а '); readln(a);
write ('Введите значение b '); readln(b);
write ('Введите значение c '); readln(c);
SrArif:=(a+b+c)/3;
srGeometr:=exp((1/3)*ln(a*b*c));
writeln ('Среднее арифметическое равно ',srArif:4:4);
writeln ('Среднее геометрическое равно ',srGeometr:4:4);
readln;
end.


Остальное изволь делать сам. И не забудь проверить, кто знает, может я здесь наделал ошибок?

AgS
18.11.2008, 00:36
Cereus Плиз перечитай мой пост, я не написал что форум отстойник, тупой информацией это я имел ввиду флуд - извиняюсь если нестоль корректно выразился и кого то обидел, я вроде написал 1-3, 4 пока не смог.

ps я пары не прогуливал (хотя 1 лекцию пропустил и то по уважительной причине)

кто может посоветовать книги для скачивания по паскалю(или дельфи желательно) для чайников - тоесть с нуля (плиз в пм)

kyoko
18.11.2008, 01:08
помогите плиз с лабами ((( нужно вот..
** Написать программу, вычисляющую значение функции S(a) = 1.2e¯°·¹ª sin (2Π*1000a) при a = 0.0, 0.1 и 0.4.
на с++ **
плиз плиз плиз!!!! ( там вместо a было t, но я не знаю просто как его сверху писать типа в степени )

scrat
18.11.2008, 09:07
помогите плиз с лабами ((( нужно вот..
** Написать программу, вычисляющую значение функции S(a) = 1.2e¯°·¹ª sin (2Π*1000a) при a = 0.0, 0.1 и 0.4.
на с++ **
плиз плиз плиз!!!! ( там вместо a было t, но я не знаю просто как его сверху писать типа в степени )

#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;

double s(double);

int _tmain(int argc, _TCHAR* argv[])
{
double a;
cout<<"Enter a:";
cin>>a;

cout<<"Result: "<<s(a);
getch();
return 0;
}

double s(double a)
{
double e = 2.7182;
//S(a) = 1.2e¯°·¹ª sin (2Π*1000a) при a = 0.0, 0.1 и 0.4.
if(a==0.0||a==0.1||a==0.4)
{
return (1.2*pow(e,-0.12)*sin(3.1415*1000*a));
}
}

Maldini89
18.11.2008, 13:50
Подсобите с лабами на Си и Асемблере :confused:
---------------
1. [язык Си] Забить массив символами: латинскими большими и маленькими. Отсортировать: Большиме (заглавные) по алфавиту; Мелкие (прописные) - наоборот.

2. [Assembler] Ввести с клавиатуры строку символов длинной не менее 20 штук. Среди символов должно быть разнообразие: кирилица (Аа, Бб), латиница (Ss, Rr).
Сделать листниг (LIST)


а с моими ничего не получится ?
ссылка (http://forum.antichat.ru/showthread.php?p=940206#post940206)

F&D
18.11.2008, 13:50
Я уже раньше писал, но совет с КриптоАйпи - не помог(к сожалению, а может я просто не полностью разобрался). В общем необходимо реализовать алгоритм шифрования RSA, т.е. шифрование и расшифровывание, генерация ключей работает.

var

//шифрование
procedure TForm1.Button2Click(Sender: TObject);
var s1,s:string;
k,c,m,nn,i,j:integer;
begin
memo1.Clear;
s:=Edit5.Text;
c:=1 ;
s1:='';
nn:=length(s);
for i:=1 to nn do
begin
m:=(ord(s[i])-ord('A')) mod 26;
c:=1 ;
for j:=1 to e do
c:=(c*m) mod n ;
memo1.lines.add(inttostr(c)) ;
c:=c mod 26;
s1:=s1 + chr(c+ord('A')) ;
end;
Edit6.Text:=s1;
end;
//дешифровка
procedure TForm1.Button3Click(Sender: TObject);
var s1,s:string;
k,c,m,nn,i,j:integer;
begin
s:= Edit6.Text;
//c:=1 ;
s1:='';
nn:=length(s);
for i:=1 to nn do
begin
m:=(ord(s[i])-ord('A')) mod 26;
c:=1 ;
for j:=1 to d do
c:=(c*m) mod n ;
memo1.lines.add(inttostr(c)) ;
c:=c mod 26;
s1:=s1 + chr(c+ord('A')) ;
end;
Edit7.Text:=s1;
end;
end.

Можете подсказать, где что изменить, или где я ошибся?!

kyoko
18.11.2008, 14:01
2scrat : спасибо большое! ня

Cereus
19.11.2008, 06:01
Здрасте всем. Необходима помощь, следующего рода: недавно в одной проге написанной на Delphi нашёл элемент похожий на поле ввода Memo, но возле каждой строки стоит CheckBox. Возникает вопрос, что это за элемент такой и как его реализовать.
И еще - как сюда можно залить картинку со своего
компа, а то пытался вставить скрин - не получилось.
Заранее спасибо.

o3,14um
19.11.2008, 06:42
может это CheckListBox ?

Cereus
19.11.2008, 15:50
o3,14um
Блин! Точно! Как я так тупанул! Спаибо!

InfernoNet
21.11.2008, 00:00
Задача: разработать алгоритм и составить программу на C++, для вывода на экран меню и решения задачи. определения номера четверти тригонометрического круга по знаку тригонометрической функции tg(x). Результат вывести на экран.
--
Сделать задачу нужно с переключателем switch. Я знаю, как сделать только через if, с переключателем понять не могу. Вот с if:

#include <iostream.h>
#include <match.h>
valid main ()
{
float x,y
cin << x;
y = tg(x)
if (y<0)
cout >> "/n номер четверти 1 и 4";
else
cot >> "/n номер четверти 2 и 3";
}

Если у кого есть возможность, напишите с переключателем switch.

ToniKapuchon
21.11.2008, 00:04
Задача: разработать алгоритм и составить программу на C++, для вывода на экран меню и решения задачи. определения номера четверти тригонометрического круга по знаку тригонометрической функции tg(x). Результат вывести на экран.
--
Сделать задачу нужно с переключателем switch. Я знаю, как сделать только через if, с переключателем понять не могу. Вот с if:



Если у кого есть возможность, напишите с переключателем switch.

y=tg(x);
switch(y)
{
case y>0:{ cout >> "/n номер четверти 2 и 3"; break;}
case y<0:{ cout >> "/n номер четверти 1 и 4"; break;}
}

Olegros911
22.11.2008, 00:56
помогите ришить задачу на Асамблере...

Задача///// найти минимальное число из заданих чисел 110(bin),33,FO(hex),1111(bin),251 нужно чтоб все ето щитала програмка в Асемблере
Кто поможет++++++++++++++++++++++++

NetSter
22.11.2008, 01:42
вот нашел прогу ввода массива и поиска макс и мин элементов.

Ввести массив чисел, найти min и max, вывести на экран
.model small
.stack 100h
.data
massiv dw 80 dup(?)
msg1 db 0ah,0dh,“Vvodite chisla “,0ah,0dh,“$“
msg2 db 0ah,0dh,“max = $“
msg3 db 0ah,0dh,“min = $“
c10 dw 10
.code
start:
mov ax,@data
mov ds,ax
mov ah,09h ; вывод приглашения для ввода чисел
lea dx,msg1
int 21h
mov di,0 ; в di - max
mov si,32767 ; в si - min
xor dx,dx ; в dx - очередное число
input_loop:
mov ah,01h ; ввод символа
int 21h
cmp al,0dh ; если enter
je chislo ; то занести число в массив
cmp al,20h ; если пробел
je chislo ; то занести число в массив
sub al,30h ; вычитаем '0'
mov cl,al ; сохраняем цифру в cl
mov ax,dx ; в ax - введенное число
mul c10 ; умножаем на 10
xor ch,ch
add ax,cx ; добавляем цифру из al
mov dx,ax ; число снова в dx
jmp input_loop
chislo:
mov bx,cx ; в bx - порядковый номер очередного числа
shl bx,1 ; теперь - смещение очередного числа в массиве
mov massiv[bx],dx ; записываем в массив число
inc cx ; увеличиваем счетчик введенных чисел
cmp dx,si ; сравниваем число с минимальным
jb minimum ; если оно меньше, то jmp на minimum
cmp dx,di ; сравниваем число с максиальным
jg maximum ; если оно больше, то jmp на maximum
jmp chislo_cont ; иначе jmp на chislo_cont
minimum:
mov si,dx ; запоминаем минимальное число в si
jmp chislo_cont
maximum:
mov di,dx ; запоминаем максимальное число в di
chislo_cont:
xor dx,dx ; dx в ноль
cmp cx,80 ; если ввели 80-ое число
je end_input ; то конец ввода
cmp al,0dh ; если был нажат enter
je end_input ; то конец ввода
jmp input_loop
end_input:
mov ah,09h ; вывод на экран msg2
lea dx,msg2
int 21h
mov ax,di ; передаем в функцию output max через ax
call output ; выводим это число
lea dx,msg3 ; вывод на экран msg3
mov ah,9
int 21h
mov ax,si ; передаем в ouptput min через ax
call output ; выводим это число
mov ah,4ch ; завершение программы
int 21h
output proc ; процедура вывода числа, находящегосы в ax
xor cx,cx ; счетчик цифр
div_loop:
xor dx,dx ; подготовка к делению
div c10 ; деление
add dx,30h ; в dx - ASCII-код остатка от деления
push dx ; сохраняем его в стеке
inc cx ; инкремент счетчика
cmp ax,0 ; деление, покуда частное не нулевое
je out_loop
jmp div_loop
out_loop: ; цикл вывода числа
pop dx ; извлекаем из стека очередной остаток
mov ah,02h ; и выводим его на экран
int 21h
loop out_loop ; цикл продолжается cx раз
ret
output endp
end start

щя смотрю где то писал функции перевода в разные СЧ... найду - добавлю.
Вот нашел функцию перевода с BIN to HEX. имхо тебе будет нужно.

-------------------EDIT--------------------------


BinToHex Proc
mov cx,4
L3:
mov si,ax
and si,0fh;здесь я мож втыканул...или же маска and si,1111b
mov dl,strHex[si] ; DATA strHex DB '0123456789ABCDEF'
dec bx
mov [bx], dl
shr ax,4
dec cx
jnz L3
ret
BinToHex ENDP


-------------------EDIT--------------------------

Olegros911
22.11.2008, 02:02
Спасибо

madjihad
22.11.2008, 18:58
Нужна помощь в написании ФТП клиента с радиобатоном для анонимного входа, поддержкой основных ф-й фтп(просмотр директорий, скачка, выкачка и тд.) Я думаю исходников в нете нарыть можно много, я и нарыл:) но встретился с проблемой. Вопервых желательно код на С++ но можна и делфу. Во вторых большинство клиентов получаются досовскими, а радиобатон тогда нельзя добавить. переделать тоже не получается. Помогите хоть чем-то. Наперёд большое спасиба!!!

NetSter
22.11.2008, 19:08
Нужна помощь в написании ФТП клиента с....
можеш посмотреть сорцы нормального фтп сервера (с) by Pablo Software ЗДЕСЬ (http://depositfiles.com/ru/files/s76xwl6xh)
или же если сильно горит недорого смотри ЗДЕСЬ (http://www.kursovik.com/programming/230006.html)

GOODmen
22.11.2008, 19:52
Народ выручайте,нужно лабу сделать на free pascale кто поможет тому огромный респект
Вот задачи1)сколько чисел натурального ряда,начиная с А,нужно взять,чтобы сумма нечетных из них не превосходила число ,заданное с клавиатуры.Число Ф задать случайно из диапазона от 1 до 10.

2)Найти сумму всех элементов массива целых чисел,которые меньше средьнего арифмитического элементов массива.Размерность массива 20.Заполнение масива осуществить случайными числами от 150 до 300.
3)Натуральное число из Н цифр являеться числом Амстронга,если сумма его цифр,возведенная в Н степень равна этому числу.Найти все числа Амстронга среди четырехзначных чисел.
4)Дан массив размера 10.Обнулить элементы массыива,расположенные между его минимальным и максимальными элементами(не включая мин. и макс. элементы)

Anutka
22.11.2008, 21:35
У меня на следующую прогу(преобразоване латинских заглавных букв в строчные) masm выдает такую ошибку:fatal error L1101:invalid object module pos:1E Record type:570C. Объясните мне, что это значит. и также хотелось бы узнать как ее исправить.
Сама прога:
CSEG segment
org 100h
assume CS:CSEG, DS:CSEG, SS:CSEG, ES:CSEG
start:
;очистка экрана
MOV AX,0600H ;AH=06H - УСТАНОВКА ПРОКРУТКИ, AL=00 - ВО ВЕСЬ ЭКРАН
MOV BH,07 ;ЧЕРНО-БЕЛЫЙ ЭКРАН
MOV CX,0000 ;ВЕРХНЯЯ ЛЕВАЯ ПОЗИЦИЯ
MOV DX,184FH ;НИЖНЯЯ ПРАВАЯ ПОЗИЦИЯ
INT 10H ;УПРАВЛЕНИЕ В BIOS
;УСТАНОВКА КУРСОРА В ПОЗИЦИЮ 00
MOV AH,02 ;ЗАПРОС НА УСТАНОВКУ КУРСОРА
MOV BH,00 ;ВЫБОР ВИДЕОСТРАНИЦЫ
MOV DX,0000 ;УСТАНОВКА КУРСОРА
INT 10H ;УПРАВЛЕНИЕ В BIOS
;ВЫВОД ПРИГЛАШЕНИЯ НА ВВОД
MOV AH,09 ;ФУНКЦИЯ ВЫВОДА СТРОКИ
MOV DX,OFFSET MSG1 ;АДРЕС СТРОКИ
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
;СЧИТЫВАНИЕ СИМВОЛОВ, ВВЕДЕННЫХ С КЛВИАТУРЫ
MOV AH,3FH ;ФУНКЦИЯ ВВОДА
MOV BX,00 ;НОМЕР ДЛЯ КЛАВИАТУРЫ
MOV CX,254 ;ДОПУСТИМОЕ КОЛИЧЕСТВО ВВЕДЕННЫХ СИМВОЛОВ
MOV DX,OFFSET INBUF ;ЗАНЕСЕНИЕ АДРЕСА БУФЕРА В РЕГИСТР DX
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
SUB AX,02 ;ИЗОБЩЕГО КОЛИЧЕСТВА СИМВОЛОВ ВЫЧИТАЮТСЯ СИМВОЛЫ "ВВОД" И "КОНЕЦ СТРОКИ"
;ИЗМЕНЕНИЕ ЗАГЛАВНЫХ БУКВ НА СТРОЧНЫЕ
MOV SI,OFFSET INBUF ;В РЕГИСТР sI (ИНДЕКС ПРИЕМНИКА) ЗАНОСИМ АДРЕС ПЕРВОГО СИМВОЛА
MOV CX,AX ;В РЕГИСТР CX ЗАНОСИМ КОЛИЧЕСТВО СИМВОЛОВ
L1:
MOV BL,[SI] ;В BL ЗАНОСИМ ПРОСМАТРИВАЕМЫЙ ФАЙЛ
CMP BL,64 ;СРАВНИВАЕМ С 64 65=A
JBE VYHOD ;ЕСЛИ МЕНЬШЕ ИЛИ РАВНО ЗАКАНЧИВАЕМ ПРОСТМОТР
CMP BL,90 ;СРАВНИВАЕМ С 90 90=Z
JA STROKI ;ЕСЛИ БОЛЬШЕ ПРОВЕРИМ НА СТРОЧНОСТЬ
ADD BL,32 ;ЕСЛИ ЗАГЛАВНАЯ ЛАТИНСКАЯ СДЕЛАЕМ СТРОЧНОЙ
MOV [SI],BL ;ВЕРНЕМ НА МЕСТО
JMP VYHOD ;КОНЕЦ
STROKI:
CMP BL,97 ;СРАВНИВАЕМ С 97 97=a
JB VYHOD ;ЕСЛИ МЕНЬШЕ ЗАКАНЧИВАЕМ
CMP BL,122 ;СРАВНИВАЕМ С 122 122=z
JA VYHOD ;ЕСЛИ БОЛЬШЕ ЗАКАНЧИВАЕМ
MOV [SI],BL ;ВОЗВРАЩАЕМ НА МЕСТО
VYHOD:
INC SI ;ПЕРЕХОД НА СЛЕДУЮЩИЙ СИМВОЛ
LOOP L1
MOV BL,BYTE PTR '$'
MOV [SI],BL ;ЗАТЫКАЕТ СТРОКУ СИМВОЛОМ $
;ВЫВОД НОВОЙ СТРОКИ
MOV AH,09
MOV DX,OFFSET MSG2
INT 21H
MOV DX,OFFSET INBUF
INT 21H
INT 20H ;ЗАВЕРШЕНИЕ ПРОГРАММЫ
MSG1 DB "ENTER STRING OF SYMBOLS:$"

MSG2 DB "CONVERT STRING:$"

INBUF DB 256 DUP (' ')

UnPazz
22.11.2008, 22:54
4)Дан массив размера 10.Обнулить элементы массыива,расположенные между его минимальным и максимальными элементами(не включая мин. и макс. элементы) Код : uses crt;
const num = 10;
var mas: array [1..num] of integer; //показываем проге что есть массив
i,min,max: integer; // показываем что есть числа i, min и max

begin

clrscr;

for i:=1 to num do begin mas[i]:=random(100)+1; write(mas[i]:3); end; //записываем в массив случайные числа и выводим на экран

writeln; writeln;

min:=mas[1]; / представим что мин.число равно минэлементу.
max:=mas[num]; // представим что макс.число равно макс.элементу

// перебираем весь массив чтобы найти настоящие мин. и максиальные элементы.
for i:=1 to num do
begin
if min>mas[i] then min:=mas[i];
if max<mas[i] then max:=mas[i];
end;

// выводим настоящие мин. и макс.элементы.
writeln('min=',min);
writeln('max=',max);
writeln;

// перебираем все элементы массива обнуляя их, кроме мин. и макс. элементов.
for i:=1 to num do
if (mas[i]<>max) and (mas[i]<>min) then mas[i]:=0;

//выводим полученный массив
for i:=1 to num do write(mas[i]:3);

readkey;
end.
Удали все комментарии и заработает

Sinay
22.11.2008, 23:07
и с комментариями заработает ;)

madjihad
22.11.2008, 23:34
можеш посмотреть сорцы нормального фтп сервера (с) by Pablo Software
мне клиент нужен... Простинький. А не сервер :)

criz
22.11.2008, 23:36
Вот с этим не заработает

min:=mas[1]; / представим что мин.число равно минэлементу.
:)

madjihad
23.11.2008, 05:07
Или может хотябы обясните как можна полностю досовское окно вывести в обычное окно и там же сразу всё вводить? Тоесть средствами Builder C++ создать с програмы
С++(типа досовской) создать програму под винду с радиобатоном и просто тем же что бЫло в досе...

criz
23.11.2008, 13:00
Ты хочешь гуи в консоль засунуть? О_о Или консоль в гуи?

vikseriq
23.11.2008, 20:06
Хм.. Как вариант, пихай техтбокс, и при нажатии постать передавай команду cmd.exe - правда вывод не заберешь )
Ты часом не шелл под винХП сделать захотел? ))

madjihad
23.11.2008, 20:26
Да я вобще просто ФТП клиент пытаюсь сделать. Обязательное условие РАДИОБАТОН. А норм исходники ФТП клиента нашол токо досовские. Вот и шаманю.... Можна и просто норм исходники в окнах на билдер :)

0verbreaK
24.11.2008, 03:39
в Turbo Pascal'е нет двойных слешей (//), т.е. они не могу быть использованы для коментариев

GOODmen
24.11.2008, 09:22
Вот с этим не заработает

min:=mas[1]; / представим что мин.число равно минэлементу.
:)
Все норм рабит,спасибо UnPazz

0verbreaK,все норм,мне и не для турбы надо было:)

Cereus
24.11.2008, 19:29
Приветствую всех. Суть ситуации такая: пишу на Delphi7 прогу, которая будет обращаться к БД. Необходимо написать SQL запрос, который по введенным полям (Фамилия, Имя, Отчество) ИЛИ по одному введенному полю будет выполнять поиск и выводить полученные данные на отдельную форму.
У меня получается примерно следующее:

fam:=edit1.Text;
imja:=edit2.Text;
otch:=edit3.Text;
with form2.query1 do begin //начало выполнения запроса
close;//Закрыть файл результат выполлнения предыдущего запроса
sql.Clear; //очистить поля предыдущего запроса
//записываем новый запрос в свойство SQL
sql.Add('select Фамилия,Имя,Отчество');
Sql.Add('form "Telef_Kniga.DB"');
SQL.Add('ORDER BY fam,Imja,Otch');
open; //старт выполнения запроса

if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1 // отобразить рез-т выполнения запроса
else begin
ShowMessage('В БД нет записей, удовлетворяющих критерию запроса.');
DataSource1.DataSet:=Table1;
end;
end; //конец выполнения запроса

Но в результате выполнения вылетает дли-и-и-и-иная ошибка. Признаться честно в чем в чем, а в SQL`е я вообще нема, поэтому буду очень благодарен если будут присутствовать, желательно подробные, комментарии

criz
24.11.2008, 20:15
хз, получится или нет, все же попробуй так:

sql.Add('select fam,Imja,Otch');
Sql.Add('from Telef_Kniga.DB');
SQL.Add('ORDER BY fam');

и хорошо бы на ошибку посмотреть :)

Cereus
24.11.2008, 20:35
хз, получится или нет, все же попробуй так:

sql.Add('select fam,Imja,Otch');
Sql.Add('from Telef_Kniga.DB');
SQL.Add('ORDER BY fam');

и хорошо бы на ошибку посмотреть :)


Дык у меня тоже самое по сути - это собственно запрос, в нем все чики-пуки должно быть... наверное...
Мне необходимо знать как результаты вывести на форму на нужные мне элементы

criz
24.11.2008, 21:32
Cereus, может это поможет:
http://www.codenet.ru/progr/delphi/stat/SQL-Delphi.php

kmsboy
25.11.2008, 10:57
Ребята помогите, зачёт на носу, РГЗ сдавать нужно, ужас :(
Помогите отсортировать массив структур по полю int win!!!


Составить программу обработки итоговой таблицы шахматного турнира.
Игры проходили в один круг, каждый из участников встретился
с другими участниками по одному разу. Обработка должна включить:
- формирование итоговой таблицы турнира с расстановкой участников
согласно набранным очкам (за победу - 1, за ничью - 0,5, за поражение - 0);
- вывести фамилии 3-х участников: больше всего побед, поражений, ничьих.

Используемый файл "players.txt"

players_1 1 5 9
players_2 2 6 8
players_3 3 7 7
players_4 4 8 6
players_5 4 8 6

/*
* Код программы
*/

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
#include <iostream.h>

using namespace std;

void rusmsg(char *string) {
char message[100];
CharToOem(string, message);
cout << message;
}
/*
* Обьявляем переменные необходимые для работы
*/

int buffer;
char filename[64];
int ch, i = 0;
double w;

FILE *fp;

struct player {
char name[32];
int win, tie, spank;
double point;
} pd[sizeof (i)];

void main() {
rusmsg("Лабораторная работа №6\ncтудента гр. 7ВТ3Д-1\nВасильев А.Н.\n\n");

if ((fp = fopen("players.txt", "r")) == NULL) {
rusmsg("Файл не найден\n>");
getch();
exit(0);
}
/*
* Вывод заголовка таблица учасников турнира
*/
cout << " --------------------------------------------------" << endl;
rusmsg("| # | Игрок | Побед | Ничьх | Поражений | Очки |\n");
cout << " --------------------------------------------------" << endl;
/*
* Формирование таблицы участников турнира
*/
while (ch != EOF) {
fscanf(fp, "%s %i %i %i", &pd[i].name, &pd[i].win, &pd[i].tie, &pd[i].spank);
pd[i].point = pd[i].win + (pd[i].tie * 0.5);
ch = fgetc(fp);
i++;
}
fclose(fp);
getch();
}

Заранее благодарен!!!

InfernoNet
25.11.2008, 15:25
# include <iostream.h>
valid main ()
{
int x,y
cin << x;
y = tg(x);
switch (y)
{
case y>0 : cout >> "\n Íîìåð ÷åòâåðòè 2 è 3"; break;
case y<0 : cout >> "\n Íîìåð ÷åòâåðòè 1 è 4"; break;
}
}

Что не так?

BadGirl
25.11.2008, 15:35
Построить график функции, используя компонент TChart. Функция f(x)=1 - x + sinx - ln(1 + x)


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;

type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
Label1: TLabel;
Button1: TButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
var k: integer;
begin

?????????????????

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close;
end;

end.


Подскажите, пожалуйста как правильно записать эту функцию.

krypt3r
25.11.2008, 15:53
ИнферноНет, ну ты отжог :)

switch (y)
{
case y>0 : cout >> "\n Íîìåð ÷åòâåðòè 2 è 3"; break;
case y<0 : cout >> "\n Íîìåð ÷åòâåðòè 1 è 4"; break;
}
}

может, так?

if (y > 0) {
...
} else {
...
}

criz
25.11.2008, 17:34
Товарищи, у кого есть пример/исходник реализации задачи "Обедающие философы"? :)
желательно на делфи. Нашел только теорию.
З.Ы. че-то я разучился гуглом пользоваться :(

InfernoNet
25.11.2008, 19:55
krypt3r, я не отжег. Проблема в том, что в универе изучаем оператор переключатель. Сегодня была лаба и пришлось делать это. С if я сам знаю как делать...
--
Проявил инициативу и придумал себе другое задание.. хорошо что не спалили.

jawbreaker
25.11.2008, 23:09
InfernoNet
ну во-первых у cin'a и cout'a стрелочки не в ту сторону =)
во-вторых выражение которое стоит за case должно быть константой:

#include <iostream>

using namespace std;

int main ()
{
int x,y;
cin >> x;
y = tg(x);
bool is = x > 0;
switch (is)
{
case (true) :
cout << ">0";
break;
case (false) :
cout << "<0";
break;
}
}

Olegros911
27.11.2008, 00:34
name "Minimal"
org 100h
masiv db 110b,33,0F0h,1111b,251
mov cx,5
Min1: mov dx, masiv [si]
cmp bx,dx
jb Min2
inc si
loop Min1
Min2: mov dl,dx



помогите исправить ошибку в програме нужно чтобы она искала минимальное значение с ряда чисел!!!!!!
всем ++++++++++++++++++++++++++++++

dars_go
27.11.2008, 01:11
Вот задачи, достаточно простые:
Массивы:
8.В данном массиве целых чисел найти минимальное значение и все номера элементов массива, равных ему.
11.Вычислить произведение сумм положительных и отрицательных элементов массива A[1..N].
18.В данной последовательности чисел найти минимальное значение среди положительных элементов и все номера членов последовательности, равных ему.
21.Составить программу, увеличивающую ненулевые элементы линейного вещественного массива Y[1..N] на 1.
28.Дан массив А[1..N] и число Х. Написать программу, который печатает "ДА", если Х совпадает с одним из элементов данноо массива, и "НЕТ" - в противном случае.
Условия:
1.Решить квадратное уравнение (a#0)

Предусловие:
16.Составить программу, проверяющую, является ли заданное натуральное число палиндромом, то есть таким, десятичная запись которого читается одинаково слева направо и справа налево.

Пост:
3.Числа Фибоначчи (fn) определяется формулами: f0 = f1 = 1; fn = fn = fn-1 + fn-2 при n=2, 3,... Составить программу:
a.определения f - 40-е число Фибоначчи;
b.поиска f - первого числа Фибоначчи, большего m (m>1);
c.вычисления s - суммы всех чисел Фибоначчи, которые не превосходят 1000.

Вложение:
12.Составить программу, печатающую для данного натурального числа k-ю цифру последовательности:
a.12345678910..., в которой выписаны подряд все натуральные числа;
b.14916253649..., в которой выписаны подряд квадраты всех натуральных чисел;
c.1123581321..., в которой выписаны подряд все числа Фибоначчи.

Счетчик:
5.Составить программу вычисления суммы кубов чисел от 25 до 125.

Если интересует стучать 4194206 , всё оплачу..

0verbreaK
27.11.2008, 23:53
Olegros911


name "Minimal"
org 100h
masiv db 110b,33,0F0h,1111b,251
mov cx,5
xor si, si ; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 33
mov bx, 33

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем
cmp bx,dx
jb Min2
inc si
loop Min1

Min2: mov dl,dx


add: Но обычно берется некоторое число, которое сравнивается с первым элементом массива и если оно меньше эталонного минимального числа, то затем сравниваем остальные элементы с последним. Думаю ты теперь понял. (Код не проверял набирал так)

wasaaap
28.11.2008, 13:39
День добрый!
Подскажите пожалуйста, как на ассемблере сделать ввод десятичного числа со знаком с клавиатуры. Желательно с коментариями)

MCSnake
29.11.2008, 13:21
http://keep4u.ru/imgs/b/081129/f4/f4bc735784dbf6fb70.jpg
это я в нете подобную задачу нашел, нужно написать на делфи это решение...
нород кто может выручите(( + сколько смогу столько и сдлаю...

З.Ы. не спрашивайте какой .... дал это задание, вы такой т....ри которая ведет у нас н знаете((

F&D
29.11.2008, 14:26
Доброго времени суток. Надеюсь кто-то из здесь присутствубщих имел когда нибудь дело с отладочным стендом EV8031/AVR (V. 3.2), вот по нему у меня и лаба. Изначально задание было таким:
По нажатию кнопки SW15 включать «бегущий огонь» на линейке светодиодов HL1-HL8. Код этой проги вот:

CSEG
ORG 0
Continue:
mov A, #10000000b
mov DPTR, #0A006h
movx @DPTR, A ;отменить гашение знакомест С_инд
mov A, #0h ;записать в Акк. число 04
mov DPTR, #0A006h ;установить в DPTR адрес левой
;пары знакомест С_инд
movx @DPTR, A
mov DPTR, #0B006h ;установить в DPTR адрес правой
;пары знакомест С_инд
movx @DPTR, A
CALL ZAD ;вызов подпрограммы задержки
mov A, #10000000b
mov DPTR, #0A006h
movx @DPTR, A ;погасить все знакоместа С_инд

CALL ZAD ;вызов подпрограммы задержки
mov A, #01000000b
mov DPTR, #0A006h
movx @DPTR, A
CALL ZAD
mov A, #00100000b
mov DPTR, #0A006h
movx @DPTR, A
CALL ZAD
mov A, #00010000b
mov DPTR, #0A006h
movx @DPTR, A
CALL ZAD
mov A, #00001000b
mov DPTR, #0A006h
movx @DPTR, A
CALL ZAD
mov A, #00000100b
mov DPTR, #0A006h
movx @DPTR, A

CALL ZAD
mov A, #00000010b
mov DPTR, #0A006h
movx @DPTR, A

CALL ZAD
mov A, #00000001b
mov DPTR, #0A006h
movx @DPTR, A
CALL ZAD
jmp Continue ;переход на начало программы

ZAD: ;подпрограмма задержки
mov R1, #0FFh
C2: mov R2, #0FFh
C4: djnz R2, C4
djnz R1, C2

ret ;выход из подпрограммы
END



Но потом последовало дополнительное задание, звучит: При нажатии кнопки SW15 включать «бегущий огонь» на линейке светодиодов HL1-HL8, при еще одном нажатии "бегущий огонь" должен остановиться, при еще одно - дальше "побежать"....
думал две пары как сделать(даже на С++ пытался) - не могу...
Помогите плиз...

Cereus
29.11.2008, 16:21
...
это я в нете подобную задачу нашел, нужно написать на делфи это решение...
нород кто может выручите(( + сколько смогу столько и сдлаю...

З.Ы. не спрашивайте какой .... дал это задание, вы такой т....ри которая ведет у нас н знаете((

Чувствую задачка интересная, но я не догоняю условия: даны три числа... А что найти?

VERte][
29.11.2008, 22:12
Olegros911


name "Minimal"
org 100h
masiv db 110b,33,0F0h,1111b,251
mov cx,5
xor si, si ; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 33
mov bx, 33

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем
cmp bx,dx
jb Min2
add si,2
loop Min1

Min2: mov dl,dx


add: Но обычно берется некоторое число, которое сравнивается с первым элементом массива и если оно меньше эталонного минимального числа, то затем сравниваем остальные элементы с последним. Думаю ты теперь понял. (Код не проверял набирал так)

эээ ну во-первых таким образом прога дойдет до первого меньшего заданного числа и остановится, если дальше в массиве будет меньшее число, то будет не верный результат, во-вторых что это за конструкция такая mov dl,dx ?????
на мой взгляд это должно выглядеть так:

name "Minimal"
code segment
assume cs:code, ds:code, ss:code
org 100h

start:
mov cx,6
xor si, si ; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 10
mov bx, 10

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем
cmp bx,dx
jb l
mov bx,dx
l:
inc si
loop Min1
ret
masiv dw 3,4,5,7,2,1
code ends
end start


результат в bx

0verbreaK
29.11.2008, 23:47
VERte][ ну во первых: я лишь поправил до более правильного и все.


а во вторых: у вас ошибка


;учитывая размерность элемента
;чтобы обратится адресу в памяти
Min1: mov dx, masiv[si*2] ; n-й элемент массива

VERte][
30.11.2008, 00:19
VERte][ ну во первых: я лишь поправил до более правильного и все.


а во вторых: у вас ошибка


;учитывая размерность элемента
;чтобы обратится адресу в памяти
Min1: mov dx, masiv[si*2] ; n-й элемент массива

ну ошибочка синтаксическая, в спешке забыл, что иду по вордам, а не по байтам, а у вас была алгоритмическая ошибка,, что хуже =)

-Vein-
30.11.2008, 12:47
нужна помощь в Delphi

как сделать так, чтобы при выделении города он показывался в статус баре (1 окно), после выделения улицы, Город не исчезал из 1 окна, а улица показывалась во 2-м окне и т.д.

скрин:
http://www.programmersforum.ru/attachment.php?attachmentid=6885&d=1227728827

Stern
30.11.2008, 15:12
Люди помогите плиз...зашиваюсь...еще 9 лаб(помимо этих)...но их сам...

__________________________________________

1)

1. Организовать формирование целочисленного массива A (случайное или с клавиатуры) и ввод целого числа. Заменить элемент стоящий на месте, номер которого совпадает с введенным числом на среднее арифметическое всех элементов массива. Упорядочить полученный массив A по убыванию. Выдавать на экран все промежуточные результаты.

2. Организовать формирование вещественного массива A (случайное или с клавиатуры) и ввод целого числа. Заменить элемент стоящий на месте, номер которого совпадает с введенным числом на среднее геометрическое всех элементов массива. Упорядочить полученный массив A по возрастанию. Выдавать на экран все промежуточные результаты.

__________________________________________

2)

1. Дана действительная матрица 7x7. Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов, находящихся ниже главной диагонали, а также их местоположение. Сформировать одномерный массив, содержащий сумму элементов четных строк и произведение элементов нечетных строк.

2. Дана действительная матрица 6x8. Найти сумму элементов каждой строки верхней половины матрицы и произведение элементов каждой строки ее нижней половины. Определить значение и местоположение максимального элемента верхней половины матрицы и минимального элемента ее нижней половины.

__________________________________________

3)

http://data1.floomby.ru/getfile.aspx?guid=ccc9a535-8f88-422f-be56-afa251cc40f7

__________________________________________

4)

1. Создать текстовый файл, содержащий целочисленные значения, следующего формата: 5 21 4 37 52 9 .Определить, являются ли значения, находящиеся в файле, упорядоченными по возрастанию.

2. Создать текстовый файл, содержащий целочисленные значения, следующего формата: 5 21 4 37 52 9 .Определить, являются ли значения, находящиеся в файле, упорядоченными по убыванию.

__________________________________________

Заранее большое при большое спасибо!!!

зы. Если не трудно будет, скинте все в txt файлик(и)...

criz
01.12.2008, 00:26
Как работать с прогой в трее? Т.е. свернуть в трей я смог, теперь надо вызвать ее, например, по WM_LBUTTONDBLCLK'у. Как это сделать?

krypt3r
01.12.2008, 08:27
Люди помогите плиз...зашиваюсь...еще 9 лаб(помимо этих)...но их сам...
Как насчет указания языка программирования?

Stern
01.12.2008, 12:23
упс...забылся....все надо написать на c++

HencH_MaN
01.12.2008, 23:04
Помогите пожалуйста сделать эту лабу!!!!
На С++
Написать программу, которая находит в каждой строке матрицы F размерности m n максимальный и минимальный элементы и помещает их на место первого и последнего элемента строки соответственно

и Вот ещё друг просил

Определить сумму n членов ряда 1; 1/1+2;1/1+2+3 и тд.
где n вводится в процессе выполнения программы.

Sinay
02.12.2008, 18:00
что именно непонятно?что не получается?
всю лабу делать както...
там достаточно простые алгоритмы,в чем сложность?

HencH_MaN
02.12.2008, 18:20
что именно непонятно?что не получается?
всю лабу делать както...
там достаточно простые алгоритмы,в чем сложность?
Ну я понял что там 2 вложенных цикла сначала по j потом по i, вообщем, я знаю как описать массив, ввести элементы, сравнение ,примерно, тоже понял как сделать,а вот как замещение сделать непойму :confused:
а и вот ещё код найдите плз ошибки:
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------
#pragma argsused
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main(int argc, char* argv[])
{
float C, R, f1, f2, N;
cout<<endl<<"C=";
cin>>C;
cout<<endl<<"R=";
cin>>R;
cout<<"f1=";
cin>>f1;
cout<<"f2=";
cin>>f2;
cout<<"N=";
cin>>N;
{
float F=f1;

do {
float W=((2*3.14)*F);
float K=(W*R*C)/(1+(W*R*C));
F=F+N;
cout<<"K="<<K;
}
while(f1>f2||N<=0);
}

getch ();
return 0;
}
//---------------------------------------------------------------------------

UnPazz
02.12.2008, 19:25
Написать программу, которая находит в каждой строке матрицы F размерности m n максимальный и минимальный элементы циклом for перебираешь двумерный массив (по i и j) - найденные элементы заносишь во временные переменные и помещает их на место первого и последнего элемента строки соответственно присваиваешь первому и последнему элементам временные переменные

Hap1K
02.12.2008, 20:44
Внимение задчка по turbo pascal )
Воть надо сделать програму в каторый содержится к примеру 5 вапросов и 10 вариантов ответа. Теперь вопрос как сделать чтобы программа понила что ответ правильный....
В конце выведится количество правильныйх ответов на вопросы.
хМ как сделать это подксажите.
хмм.. помоему тот кто пишет программу(программист) должен знать правильные ответы...
ну а как узнать правильно или нет... можно задать определенное условие... ;)

UnPazz
02.12.2008, 21:11
Теперь вопрос как сделать чтобы программа понила что ответ правильный.... Если введенный ответ через readln равен правильному ответу.
Используй условие if

criz
02.12.2008, 21:45
Товарищи, помогите :)
Как работать с прогой в трее? Т.е. свернуть в трей я смог, теперь надо вызвать ее, например, по WM_LBUTTONDBLCLK'у. Как это сделать?
Как отловить событие мыши в трее?
Вот что получилось, на основе гугла:

#define WM_ShellNote (WM_APP + 1)
/*..............*/
LRESULT CALLBACK MyWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
bool DoubleClick();
/*..............*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
memset(&iconData, 0, sizeof(iconData));
iconData.cbSize = sizeof(NOTIFYICONDATA);
iconData.hWnd = Form1->Handle;
iconData.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(32516));
iconData.uID = 1000;
iconData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;

lstrcpyn(iconData.szTip, "Всплывающее окошко\n", sizeof(iconData.szTip)/sizeof(iconData.szTip[0]));

iconData.uCallbackMessage = WM_ShellNote;

Shell_NotifyIconA(NIM_ADD, &iconData);
Form1->Hide();
}
//---------------------------------------------------------------------------

LRESULT CALLBACK MyWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

if(uMsg == WM_ShellNote && hWnd == Form1->Handle && wParam == 1)
{
switch((UINT)lParam)
{
case WM_RBUTTONDBLCLK: return DoubleClick();
}
}
}

bool DoubleClick()
{
Form1->Show();
Shell_NotifyIconA(NIM_DELETE, &iconData);
DestroyIcon(iconData.hIcon);
}

Где еррор?

eLWAux
03.12.2008, 13:44
помогите с написания лаби на тему "Численное интегрирование функций переменной, метод прямоугольников"

вот уже сам что - то сделал,.. но неправильно..
может увидите мою ошибку..

program lab4_11v;
uses Crt;
const a = 0;
b = 3;
E = 0.001;


function arcsin(x:real):real;
begin
if x=1.0 then arcsin:=Pi/2.0
else arcsin:=arctan(x/sqrt(1-x*x));
end;

function fpp(x:double):double;
begin
fpp:= x;
end;

function f(x:double):double;
begin
f:=arcsin(sqrt(x/(1+x)));
end;

var
sum, h,n,M,x,Xnext,I : double;

begin
ClrScr;
sum:=0;

M := 2.12132;{max|f''(x)|}

h := sqrt( (24*E) / ((b-a)*M) );
n := ((b-a)/h);
writeln('h = ',h);
writeln('n = ',n);

n := sqrt( ((b-a)*(b-a)*(b-a)*M)/(24*E) );
writeln('n = ',n);

x:=a;
repeat
begin
Xnext := x+h;
sum := sum + f((x+Xnext)/2);
x := Xnext;
end;
until (Xnext<=(b-h));

I:= sum*h;
writeln('I = ',I);

readln;
end.
..методичка+лаба:
http://slil.ru/26395692

GOODmen
03.12.2008, 16:44
Народ,я в опе...помогайте,завтра сдавать лабы на фри паскаль а у мну ничего не сделано и не плучаеться...поиогите...
1)сколько чисел натурального ряда,начиная с А,нужно взять,чтобы сумма нечетных из них не превосходила число ,заданное с клавиатуры.Число Ф задать случайно из диапазона от 1 до 10.

2)Найти сумму всех элементов массива целых чисел,которые меньше средьнего арифмитического элементов массива.Размерность массива 20.Заполнение масива осуществить случайными числами от 150 до 300.
3)Натуральное число из Н цифр являеться числом Амстронга,если сумма его цифр,возведенная в Н степень равна этому числу.Найти все числа Амстронга среди четырехзначных чисел.

UnPazz
03.12.2008, 17:09
2)Найти сумму всех элементов массива целых чисел,которые меньше средьнего арифмитического элементов массива.Размерность массива 20.Заполнение масива осуществить случайными числами от 150 до 300.
-заполняешь массив случайными числами for i:=1 to 20 do mas[i]:=random(300)+150;
-считаешь сумму элементов массива for i:=1 to 20 do summ:=summ+mas[i];
-находишь среднее арифметическое sred=summ/20;
-перебираешь массив, суммируя элементы, которые меньше среднего арифметического for i:=1 to 0 do if (mas[i]<sred then mas_summ:=mas_summ+mas[i];

HencH_MaN
03.12.2008, 17:29
UnPazz посмотри плз код вот что я написал для своей лабы!!
#include<iostream>
#include<alloc.h>
#include<conio.h>
using namespace std;
int main()
{
int i,j,x;
cout<<endl<<"m=";
int m;
cin>>m;
cout<<endl<<"n=";
int n;
cin>>n;
if(m<1||n<1) return -1;
double**a=new double*[m];
for(i=0;i<m;i++)
{
a[i]=new double[n];
for(int j=0;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
int k;
int*b=new int[m];
int min,l;
i=0;x=0;
while(i<m)
{
int min=a[i][0],max=a[i][0],l;
for(int j=1;j<n;++j)
{
if (a[i][j]<min) min=a[i][j];
if (a[i][j]>max) max=a[i][j];
}
l=(2*m-i);
b[l]=max;
b[i]=min;
++i;
}
int p;
for (p=0;p<m;p++){
cout<<"b["<<p<<"]="<<b[p];}
getch ();
return 0;
}

jawbreaker
03.12.2008, 17:47
eLWAux
не понимаю я по-украински, посмотри тут (http://www.intuit.ru/department/calculate/intromathmodel/12/2.html) , здесь подробное описание и блок-схема

eLWAux
03.12.2008, 18:16
jawbreaker, спасибо тебе большое!
єто то что мне надо било!!

GOODmen
03.12.2008, 19:48
UnPazz,а можешь код написать? потом плючами не обижу когда наберу норм сообщений

SaiRus
03.12.2008, 21:37
ыыы кому надо исходники, методов одномерной и многомерной оптимизации ( метод половинного деления, дробного шага, симплекс метод, транспортная задача) стучите за плюсики раздам и объясню как решать :)

Olegros911
03.12.2008, 22:56
[']эээ ну во-первых таким образом прога дойдет до первого меньшего заданного числа и остановится, если дальше в массиве будет меньшее число, то будет не верный результат, во-вторых что это за конструкция такая mov dl,dx ?????
на мой взгляд это должно выглядеть так:

name "Minimal"
code segment
assume cs:code, ds:code, ss:code
org 100h

start:
mov cx,6
xor si, si ; итератор равен 0

;в bx должно находится какое нибудь
;начальное минимальное значение
;допустим 10
mov bx, 10

Min1: mov dx, masiv[si] ; первый элемент массива

;сравниваем
cmp bx,dx
jb l
mov bx,dx
l:
inc si
loop Min1
ret
masiv dw 3,4,5,7,2,1
code ends
end start


результат в bx




:D :D :D препод сказал точно такую же но с подпрограмой)))) помогите!!!!!!!!!!!!!!!

StealthMaster
04.12.2008, 00:19
Пожалуйста, помогите с лабораторной. На ассемблере необходимо написать программу, которая переводит введенное с клавиатуры шестнадцатиричное число в систему с заданным основанием (основание также вводится с клавиатуры).
Я использую 10ю версию MASM'a.

Я пытался написать, но возникли некоторые проблемы. Как преобразовать введенную строку в шестнадцатиричное число?

Помогите, пожалуйста :( Хотя бы покажите как перевести введенное число из шестнадцатиричной системы в другую, основание которой заранее известно, но отлично от 2, 8, 16.

ganimed
04.12.2008, 20:48
Позарез надо написать клиент для jabber! Времени разбираться в rfc нет уже... мне б, главное, основные моменты узнать: соединение, авторизация и т.д. Помогите, кто чем сможет!..

gisTy
05.12.2008, 21:43
скачай линуксовый клиент какой-нибудь. из него вытащи нужные тебе функции и вставь в свой клиент. сделай графическое оформление и юзай(=

ganimed
05.12.2008, 22:14
Да вот всё никак не мог найти клиента с исходниками, в которых разобраться смог бы. Посоветуйте чего-нибудь попроще? :)

jawbreaker
05.12.2008, 22:51
http://sourceforge.net/search/?type_of_search=soft&words=jabber+c%2B%2B

vikseriq
05.12.2008, 22:59
Miranda IM opensource & for win & VC++.
THNK yourself )

da_technic
06.12.2008, 01:10
КОРОЧ СДЕЛАЛ ПРОГУ, МЫШКОЙ ЧТОБ РИСОВАЛА+КНОПКА ВЫХОД.., А КАК СДЕЛАТЬ ТАК, ЧТО БЫ КОГДА ВЕДЕШЬ МЫШКОЙ ЦВЕТА МЕНЯЛИСЬ - ВОТ КОД..

void CDRAWDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

if((nFlags & MK_LBUTTON)==MK_LBUTTON)
{
CClientDC dc(this);

// dc.SetPixel(point.x, point.y, RGB(123,211,98));

CPen NewPen(PS_SOLID, 5, RGB(255,0,0));
dc.SelectObject(&NewPen);

dc.MoveTo(m_PrevX, m_PrevY);
dc.LineTo(point.x, point.y);
m_PrevX=point.x;
m_PrevY=point.y;
}


я думаю где тут что то нужно вставить

+задание на утро - в общем нуна сделать прогу - там ну...напр 4 конпки - нажимаешь на 1 - рисуешь 1 цветом, на др - другим!! оч нужно помогите плз!!

NetSter
06.12.2008, 03:24
имхо простое решение - создай диалог с радиобатонами или еще какой нить елемент контроля, который будет передавать тебе значения типа 1, 2, 3 ит.д. потом в зависимости от полученого резалта с диалога выбора цвета присвой к 1 значение GREEN и т.д. и передавай в саму рисовалку..
ну смысл в том что можно спростить тем что простеньким диалогом выбрать и передать значения цветов для рисования...
удачи, мэн.

RegroZ
06.12.2008, 13:15
Помогите плз решить задачи, как можно скорее!
Задача №1
Трамвайные билеты в городе S имеют номера, состоящие из N цифр, причем N всегда нечетное. Пассажиры определяют, является ли билет "счастливым", следующим образом.
Сначала считаются суммы цифр слева и справа от средней цифры. Если они совпадают, то билет считается счастливым.
Если же суммы не совпали, то в дело идет средняя цифра. Это число (от 0 до 9) пробуют разделить на два слагаемых таким образом, чтобы при добавлении одного из них к сумме цифр слева от середины номера и другого к сумме цифр справа от середины номера эти суммы все же совпали. В случае, если такое разложение на слагаемые существует, билет также считается счастливым.
Ваша задача - определить по заданным номерам билетов, являются ли они счастливыми или нет.

Формат входного файла input.txt
Первая строка - целые числа N и M, где
3 <= N <= 99 - количество цифр в номере билета (гарантируется, что N - нечетное число)
1 <= M <= 100000 - количество билетов, для которых надо проверить, являются ли они счастливыми
Каждая из следующих M строк содержит по одному номеру билета

Формат выходного файла output.txt
Каждая из M строк выходного файла содержит знак +, если билет является счастливым, и знак -, если билет не является счастливым

Пример входного файла
7 4
3570816
3579816
3576819
3575819

Пример выходного файла
+
+
-
+

Задача №2
Гости города S решили навестить своего друга. Они знают, что его дом находится возле трамвайной остановки.
У гостей города S есть карта, на которой указаны все трамвайные пути и остановки, а также трамвайные маршруты. Один из гостей города S составил список из номеров трамваев и остановок, на которых нужно выходить, чтобы пересесть на следующий трамвай.
Ваша задача - по карте и списку определить время, за которое гости города S смогут добраться до дома своего друга. Если сделать это невозможно (список мог быть составлен с ошибками), выведите в качестве ответа -1.

Формат входного файла input.txt
Первая строка - целые числа N, M, A, B, S через пробел, где
N - число остановок (будем полагать их занумерованными числами от 1 до N) (2 <= N <= 500)
M - количество трамвайных маршрутов (1 <= M <= 300)
A - номер остановки возле гостиницы (точка отправления гостей города) (1 <= A <= N). Гости города S приходят на нее в момент времени, равный 0.
B - номер остановки возле дома друга гостей города (1 <= B <= N, B <> A)
S - количество строк в списке гостя города (1 <= S <= 300)
Далее следуют M групп по 3 строки, описывающие трамвайные маршруты.
Первая строка описания содержит три целых числа Qj, Cj и Dj (j = 1, 2, ... M) через пробел, где
Qj - количество остановок в маршруте #j (2 <= Qj <= N)
Cj (Cj >= 0) - время появления первого трамвая данного маршрута на первой остановке маршрута. Время отсчитывается от момента появления на остановке #А гостей города S.
Dj (Dj >= 0) - интервал времени (в минутах), через который трамваи этого маршрута отправляются с начальной остановки. Если Dj = 0, это означает, что трамвай выходит на маршрут единожды.
Вторая строка описания содержит последовательность остановок маршрута - Qj целых чисел P1j, P2j, ..., PQjj через пробел (Pk j <> Pk+1 j).
Третья строка содержит Qj-1 целое число: U12j, U23j, U34j, ..., UQj-1Qjj - интервалы времени (в минутах), за которые трамвай доезжает от одной остановки до другой (от первой до второй, от второй до третьей и т.д.)
Каждая из следующих S строк содержит по два целых числа Ti и Ki (i = 1, 2, ... S) через пробел, где
Ti (1 <= Ti <= M) - номер трамвая, на который следует сесть гостям города на "текущей остановке"
Ki (1 <= Ki <= N) - номер остановки, на которой им следует выйти
Для первого трамвая в списке текущей считается остановка #A, для каждого последующего - та остановка, на которой гости города вышли из предыдущего трамвая.
Пересадка с трамвая на трамвай не может происходить мгновенно. Если гости города вышли из трамвая на некоторой остановке в момент времени t, то сесть в следующий трамвай они могут только в момент времени t+1 (т.е. если трамваи оказались на остановке одновременно, пересесть из одного в другой не удастся).
Гарантируется, что гости города потратят не более 10^6 минут, чтобы добраться до дома своего друга, если это возможно.

Формат выходного файла output.txt
Первая строка содержит одно целое число - время в минутах, за которое гости города S доберутся от остановки A до остановки B. Если это невозможно сделать, выведите -1.

Пример входного файла
6 2 1 6 2
4 1 15
1 2 3 4
4 5 3
3 2 10
5 3 6
5 6
1 3
2 6

Пример выходного файла:
23

Задача №3
M гостей города S решили посетить научную конференцию. На конференции всем участникам были выданы совершенно одинаковые непрозрачные папки, в которых, кроме прочего, были большие блокноты. Когда M гостей города S пришли в кафе пообедать, трое из них сложили свои папки на подоконник. Пока они обедали, кто-то из коллег уложил все три папки в аккуратную стопку.
Хозяева папок - назовем их условно A, B, C - решили попробовать определить, какая из папок чья, не открывая их. Оказалось, что А предпочел вести записи в собственном маленьком блокноте и отдал большой блокнот С. У B же содержимое папки не менялось. Следовательно, самая легкая папка должна принадлежать A, самая тяжелая - C, а средняя по весу - B.
Папки были помечены как 1, 2 и 3.
Один из троих "взвесил" попарно папки в руках и записал результаты "взвешивания": сначала номер папки, которая показалась ему более легкой, затем номер папки, которая показалась ему более тяжелой.
Ваша задача - определить, какая из папок кому принадлежит, или, если это невозможно по приведенным данным, вывести в качестве ответа 0.

Формат входного файла input.txt
Входной файл содержит три строки вида
L H
- два целых числа через пробел, 1 <= L, H <= 3, L <> H

Формат выходного файла output.txt
Первая строка - символы A, B, C через пробел, в порядке, соответствующем номерам принадлежащих им папок (на первом месте указать владельца папки 1, на втором - владельца папки 2, на третьем - владельца папки 3).
Если по данным входного файла нельзя установить владельцев папок, выведите в первую строку единственное число 0.

Пример входного файла 1
1 2
2 3
1 3

Пример выходного файла 1
A B C

Пример входного файла 2
1 3
3 2
2 1

Пример выходного файла 2
0

Заранее спасибо!

Avant
06.12.2008, 23:09
у кого есть готовое решение, прошу пожалуйста выложить:)
Нужна простая программа на Pascal работающая с файлами, без наворотов:)

043nKRuT0y
06.12.2008, 23:50
Народ кто может помочь сделать !?
Вот задание :
Дано массив отрезков и массив прямых. Нужно найти те отрезки што создаются в результате проекции массива отрезков на массив прямых ! Ето все нужно сделать графически !

Написать нужно на С++

diakon2
08.12.2008, 17:49
народ помогите с двумя задачками в VisualBasic
задание
1 с клавиатуры вводится 4х значное число (1234 5629 3509 и тд) и нужно посчитать произведение каждого из знаков(1*2*3*4 5*6*2*9 3*5*0*9)


2 с клавиатуры вводится массив чисел и посчитать среднее арифметическое
ну я так понял массив может быть одномерный. то бишь строка чисел, которые разделяться будут пробелом

если поможете буду очень признателен
достаточно кода который будет вставляться в кнопку подсчитать
с уважением Владимир

~NeiTRoN~
08.12.2008, 19:03
Народ помогите плиз!!! Задание такое:
В произвольном тексте, содержащем не больше 10 строк, в каждой строке не более 80 символов, перенести последнюю букву в начало слова. Полученный текст напечатать. В Microsoft Visual Studio .NET
Я попробовал набрать программу но она не работает!!!
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define YES 1
#define NO 0
void main()
{
const int m=10;
char string[m][80],d;
int n,i,j,beg;
int inword=NO;
i=0;
while (gets(string[i])!=NULL)i++;
int k=i;
printf("\n");
for(i=0;i<k;i++)
{
n=strlen(string[i]);
for(j=0;j<=n;j++)
if(*(string[i]+j)==' ' || *(string[i]+j)=='\0' || *(string[i]+j)==',')
{if(inword==YES)
{
d=*(string[i]+j-1);
*(string[i]+j-1)=*(string[i]+beg);
*(string[i]+beg)=d;
}
inword=NO;
}
else
if(inword==NO)
{inword=YES;beg=j;}
}
for(i=0;i<k;i++)
puts(string[i]);
getch();
}
Помогите пожалуйста!

~NeiTRoN~
08.12.2008, 20:44
Delimiter большое спасибо=) Немного мудренный конечно код,препод выпадет=))
P.S. - а как сделать чтбы руский текст нормально выводился или это впринципе не возможно?

diakon2
09.12.2008, 10:34
народ ктонть поможет с задачками, они вроде не сложные, пожалуйста оч нада

restorov_ss
09.12.2008, 16:29
Кто возьмется писать на Паскале?
Мудреный код мне не нужен)
Все должно быть с комментариями, т.е. разжёвано так, чтобы я потом не ждал вас в аське, чтобы вы мне объясняли.
Кто возьмется, то с ценами пишем в аську) 6218200(можно в офф, приду отвечу)
Деньги вперёд не даю!


koi8 | win | dos | utf-8 | mac

СТРУКТУРЫ ДАННЫХ

ЗАДАЧА 1:

Вводится последовательность, состоящая из N пар символов (ai,bi). Каждая пара определяет порядок предшествования символов,
например, пара (b,с) означает, что символ "b" предшествует символу "с". Из порядка (b,с) и (с,a) следует порядок (b,a).
Необходимо определить, является ли введенная последовательность: а) полной, т.е. все использованные для формирования
пар символы (выбросив повторяющиеся) можно выстроить в цепочку (A1,A2,...,As) в порядке предшествования;
б) противоречивой, т.е. для некоторых символов x,y можно получить одновременно порядок как (x,y) так и (y,x);

РЕШЕНИЕ(написать код, не забывай про комментарии):

Пусть при записи этих N пар встретилось всего K различных символов, которые образуют множество X.
Идея решения задачи состоит в последовательном присвоении каждому символу s из Х номера, который определяет
количество Р(s) элементов, предшествующих ему, с учетом свойства транзитивности (из (с,b) и (b,а) следует (с,а)).
Это осуществляется следующим образом: Первоначально предполагается, что каждому символу не предшествует ни один символ,
т.е. Р(s)=0 для любого s. При просмотре очередной пары (x,y) символу y присваивается большее из значений P(x)+1, P(y).
Очевидно, что при первом просмотре всех пар из входной последовательности определятся все упорядоченные цепочки длины 2,
т.е. состоящие из 2 элементов. Поэтому номера некоторых элементов будут как минимум 1. При каждом из следующих просмотров
входной строкивозможно несколько вариантов. Не произошло изменения ни одного из номеров символов. Если при этом номера символов
различны и лежат в пределах от 0 до N-1, то эта нумерация определяет полный порядок. Иначе порядок неполный. Номер некоторого символа
превысил N-1. Это произошло потому, что рост номеров неограничен, т.е. осуществляется циклически. Следовательно порядок противоречив.
Легко понять, что число просмотров не превысит N. Вариант 2. Рассмотрим следующий метод: Заведем массивы A: array [1..N,0..N] of byte и
Cnt: array[1..N] of byte; сначала A[i,0]=0 и Cnt[i]=0 для любого i. Пусть среди 2*N символов, образующих N пар, есть ровно K различных.
Перенумеруем их от 1 до K. Будем считать, что пары составлены не из символов, а из соответствующих им номеров. В i-ю строчку матрицы A будем
заносить те элементы, которые являются вторыми элементами в парах с первым элементом i. В A[i,0] будет храниться текущее число этих элементов.
Обработка пары (i,j) будет выглядеть следующим образом: A[i,0]:=A[i,0]+1; {количество увеличилось на 1} A[i,A[i,0]]:=j; {вставляем j на первое свободное место}
В Сnt[i] будет храниться число пар, у которых элемент i является вторым в паре. Если все символы без повторений, использованные для записи пар, можно выписать
в цепочку в порядке предшествования, то у этой цепочки должен быть первый символ s, у которого нет предшествующего и которому соответствует Cnt[s]=0.
Может быть несколько ситуаций: 1. Такой элемент единственный - следовательно, это начало цепочки. Отбрасываем s из цепочки и убираем все пары с первым элементом s
из множества пар, корректируя при этом массив Cnt: for i:=1 to A[0,s] do Сnt[A[s,i]]:=Cnt[A[s,i]]-1; после чего опять ищем элемент s, у которого нет предшествующего
и которому соответствует Cnt[s]=0. 2. Таких элементов несколько, следовательно, между ними нельзя определить порядок предшествования - система неполна. 3. Таких элементов нет - следовательно, система противоречива.

ГРАФЫ

ЗАДАЧА 2:

Задан набор неповторяющихся пар (Ai,Aj), Ai, Aj принадлежат множеству А={A1, A2, ..., An}. Необходимо составить цепочку
максимальной длины по правилу (Ai,Aj)+(Aj,Ak)=(Ai,Aj,Ak). При образовании этой цепочки любая пара может быть использована не более одного раза.

РЕШЕНИЕ(написанный в конце программы код с ошибкой. надо найти эту ошибку и исправить её; не забываем про комментарии):

Для более удобного хранения информации заведем матрицу C[1...n,1..n] (так называемую матрицу смежности) в которой
C[i,j]=1, если в наборе есть пара (Ai,Aj) и C[i,j]=0 иначе. Будем строить все возможные цепочки (по правилу, данному
в условии) и искать среди них ту, которая имеет максимальную длину. В качестве начального символа цепочки можно взять
любой символ из A. Пусть это символ Ai. Ищем, просматривая строку i матрицы C слева направо элемент C[i,j]=1
(другими словами, ищем пару с первым элементом Ai). Если такого элемента не существует, то берем в качестве начала
строки другой элемент множества A. Если элемент C[i,j]=1 найден, то ему соответствует пара (Ai,Aj). Помечаем ее как
уже использованную полагая, например, C[i,j]=-1. Далее просматриваем слева направо строку j матрицы C в поисках еще не
использованной пары (Aj,Ak) (C[j,k]=1). Присоединяем элемент Ak к имеющейся цепочке, полагаем C[j,k]=-1, ищем единичный
элемент в строке k и т.д. Предположим, на некотором шаге мы получили цепочку Ai Aj Ak ... As Al Ap и в строке p матрицы
больше нет ни одного единичного элемента. Это означает, что при таком подборе предыдущих элементов мы нашли максимальную
по длине строку. Если ее длина больше длин всех найденных ранее строк, запоминаем эту строку как рекорд. После этого "отщепляем"
от строки последний элемент Ap и смотрим, есть ли еще в строке l единичный элемент с индексом, большим p. Если да, то приписываем
уже этот элемент к строке и пытаемся затем снова увеличить длину полученной строки, если же нет, то "отщепляем" от строки элемент A1,
в строке S ищем единичный элемент с индексом, большим l и т.д. Останов осуществляется тогда, когда мы должны "отщепить" от строки Ai.
Перебираем цепочки, начинающиеся со всех возможных элементов множества A. Находим строку максимальной длины: const M=10; {максимально число элементов в A}
{будем считать, что A состоит из чисел от 1 до N} var c:array[1..M,1..M] of integer; curstr, maxstr: array[0..M] of integer; {в этих переменных хранятся текущая цепочка и}
{цепочка максимальной длины.} {В нулевом элементе хранится длина цепочки} N,E : integer; {N - число элементов в A} i,j,k : integer; {E - число пар в наборе} procedure find;
var l,j : integer; begin l:=curstr[curstr[0]]; {l = последний элемент цепочки} for j:=1 to N do {просмотр строки l} if C[l,j]=1 then begin curstr[0]:=curstr[0]+1; curstr[curstr[0]]:=j; {j -> в цепочку}
c[l,j]:=-1; {пара использована} find; c[l,j]:=1; {пару снова разрешено использовать} curstr[0]:=curstr[0]-1; end; if curstr[0]>maxstr[0] {если нашли более} then maxstr:=curstr {длинную строку} end; begin readln(N); readln(E);
for i:=1 to N do for j:=1 to N do C[i,j]:=0; for k:=1 to E do begin write('очередная пара: ',i,j); c[i,j]:=1 end; for i:=1 to N do begin curr[0]:=1; {поиск цепочки} curr[1]:=i; {начинающейся элементом i} find; end; for i:=1 to maxstr[0] do write(maxstr[i]); {печать максимальной строки} end.


ЗАДАЧА 3:

Найти и удалить (левым удалением) среднюю по значению вершину дерева, у которой высота левого поддерева отличается от высоты правого поддерева на 2. Выполиь прямой (левый) обход полученного дерева.

Для реализации этой задачи можно использовать данное (ниже) построение бинарного дерева, но естественно нужно переделать всё так, как сказано в условии данной задачи:

Uses Graph,crt;
Type PEl = ^El;
El = record
Data : integer;
W, H :integer;
L, R : PEl
end;
var T : PEl;
i, w, h, gd, gm, _global_counter : integer;
hg,wg:string;
x3,y3,kl, kr,d,s,s1:integer;
//----------------------------

Const n=12;
Gl :integer=0;
Procedure AddNode(var P:PEl; n:integer);
begin
if P<> Nil
then if n < P^.Data
then AddNode(P^.L,n)
else if n > P^.Data
then AddNode(P^.R,n)
else writeln('est')

else
begin
New(P); //elsi novoe
P^.Data:=n;
P^.L:=Nil;
P^.R:=Nil
end;
end;
{------------------------------------------------------}
Function MaxHeight(P:PEl):integer; //vysota dereva
var Hl, Hr : integer;
begin
if P=Nil then MaxHeight:=0
else begin
Hl:=MaxHeight(P^.L);
Hr:=MaxHeight(P^.R);
MaxHeight:=Hl+1;
P^.H:=Hl+1;
if Hr > Hl
then begin
MaxHeight:=Hr+1;
P^.H:=Hr+1
end
end;
end;
{------------------------------------------------------}
Function MaxWidth(P:PEl):integer; //shirina dereva

begin
if P=Nil then MaxWidth:=0
else begin

MaxWidth:=1+MaxWidth(P^.L)+MaxWidth(P^.R)
end
end;
Procedure PrintTree(P:PEl;x1,y1,DX:byte);

{$R-}
begin

if P=Nil then begin Exit end
else
begin
PrintTree(P^.r,x1+trunc(dx),y1+2,trunc(dx/2));
{delay(300);} gotoxy(x1,y1+1);
writeln(P^.Data:3);
PrintTree(P^.l,x1-trunc(dx),y1+2,trunc(dx/2));
end
{$R+}
end;
{------------------------------------------------}
Procedure GTree( P:Pel;XL,XR,Y,dy:integer; var x2,y2:integer );
var dat:string; //

s,xn,yn,kl,kr,d:integer;
{$R-}
Begin
if P=nil then begin exit end
else
begin
kl:=maxwidth(p^.l)+1;
kr:=maxwidth(p^.r)+1;
d:=(xr-xl) div (kl+kr);
s:=xl+d*kl;


Str(P^.data,dat);

OutTextXY(s,y,dat);

circle(s,y,15);

if P^.R<>Nil then
begin

GTree(P^.R,s,xr,y+dy,dy,xn,yn);
line(s,y+15,xn,yn-15);
end;

if P^.L<>Nil then
begin

GTree(P^.l,xl,s,y+dy,dy,xn,yn );
line(s,y+15,xn,yn-15);
end;

x2:=s;
y2:=y;
end;
{$R+}
End;
{----------------------------------------------------------}
var lw,rw:integer;
begin
Clrscr;

gd:=Detect;
InitGraph(gd, gm, '');
T:=Nil;
Randomize;
for i:=1 to 30
do
begin
AddNode(T, Random(30)-15);
end;
w:=MaxWidth(T);
h:=MaxHeight(T);

lw:= MaxWidth(t^.L);
Rw:= MaxWidth(t^.R);

//------------------------
PrintTree(t,40,0,16);
gotoxy(0,26);
writeln('vusota ',h);
write('shirina ',w);
SetTextJustify(CenterText, CenterText);
GTree(t,10,Getmaxx -10,30,getmaxy div h ,x3,y3 );
setcolor(yellow);
Str(h,hg);
Str(w,wg);
OutTextXY(getmaxx-100,getmaxy-100,'Vusota '); OutTextXY(getmaxx-50,getmaxy-100,hg);
OutTextXY(getmaxx-100,getmaxy-110,'Shirina ');OutTextXY(getmaxx-50,getmaxy-110,wg);
readkey;
CloseGraph;

end.



!!!ПОВТОРЮСЬ: НЕ ЗАБЫВАЙ ПИСАТЬ КОММЕНТАРИИ!!!

~NeiTRoN~
09.12.2008, 20:07
Народ возникла проблемка с задачей. Помогите плиз,кто может.
Задача вот в чем:
В произвольном тексте,нужно подсчитать количество гласных каждой строки и вывести строку с максимальным количеством гласных+ поиск количество глассных, нужно офрмить как функцию!

Airoman
09.12.2008, 20:44
Господа, выручайте. С меня требуют программу о распределении ресурсов, методом динамического программирования.
В задаче дана функция дохода, кол-во ресурсов и кол-во предприятий. И все это решается методом динамического программирования. Вот ссылка на фаил с подробным описание темы по которой нужно делать. Вот файл с пояснением. (http://slil.ru/26415823) Спасибо всем заранее. Жду помощи.
P.S. C++, C#, Delphi...

jawbreaker
09.12.2008, 21:01
~NeiTRoN~

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string vowels = "aeiou";

int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;

return res;
}

int main()
{
string a;
cin >> a;
cout << a << "\n";
cout << countvowels(a);
cin.get();
return 0;
}

-Vein-
10.12.2008, 10:26
нужна помощь в Delphi

как сделать так, чтобы при выделении города он показывался в статус баре (1 окно), после выделения улицы, Город не исчезал из 1 окна, а улица показывалась во 2-м окне и т.д.

скрин:
http://www.programmersforum.ru/attachment.php?attachmentid=6885&d=1227728827

~NeiTRoN~
10.12.2008, 12:57
~NeiTRoN~

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string vowels = "aeiou";

int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;

return res;
}

int main()
{
string a;
cin >> a;
cout << a << "\n";
cout << countvowels(a);
cin.get();
return 0;
}

Спс=) Но мне немного другое нужно. Мне нужно не просто определить количество гласных в непрерывной строке, а в строке типа "Слово слово слово,слово"=(

Airoman
10.12.2008, 13:03
Неужели никто не знает? Выручайте плиз. =\

izlesa
10.12.2008, 13:18
2~NeiTRoN~
А почему ты считаешь, что строка "Слово слово слово,слово" чем то прерывается? Строки (Си-строки) это последовательность ASCII-символов, ограниченная '\0' в конце. Символ пробела и запятой это такие же ASCII символы как и любая гласная-согласная. Так что для подсчёта кол-ва гласных в строке тебе не надо разбирать строку по словам.

2Airoman
Та задача, ктр ты выложил к программированию имеет очень опосредованное отношение. Динамическое программирование в этом контексте - это один из разделов Методов Оптимизации. Здесь с ним тебе никто не поможет скорее всего.

~NeiTRoN~
10.12.2008, 13:54
2~NeiTRoN~
А почему ты считаешь, что строка "Слово слово слово,слово" чем то прерывается? Строки (Си-строки) это последовательность ASCII-символов, ограниченная '\0' в конце. Символ пробела и запятой это такие же ASCII символы как и любая гласная-согласная. Так что для подсчёта кол-ва гласных в строке тебе не надо разбирать строку по словам.

А почему тогда код jawbreaker. При вводе aaassdduuiio выводит эту строку и количество гласных:8, а при вводе aaass dduuiio-выводит aaass и количество гласных: 3?Хотя нужно чтобы всеравно вывел 8

Airoman
10.12.2008, 14:18
2Airoman
Та задача, ктр ты выложил к программированию имеет очень опосредованное отношение. Динамическое программирование в этом контексте - это один из разделов Методов Оптимизации. Здесь с ним тебе никто не поможет скорее всего.
Да мне хоть что-то похожее на этот динамический метод. а то я линейно сделал, а это не подходит. Спасайте!!!

izlesa
10.12.2008, 14:44
млин, мне проще на Си переделать немного, чем в приплюснотом разбираццо ...



#include <stdio.h>

char *vowels = "aeiou";

int countvowels(char *s)
{
int res = 0;
int i;
int j;
for(i = 0; i < strlen(s); i++)
{
for(j = 0; j < strlen(vowels); j++)
{
if (s[i] == vowels[j])
res++;
}
}
return res;
}

int main()
{
char str[100];
gets(str);
printf("%s", str);
printf("\nvowels count : %d", countvowels(str));
return 0;
}



всё должно быть в принципе понятно ...

jawbreaker
10.12.2008, 15:04
Спс=) Но мне немного другое нужно. Мне нужно не просто определить количество гласных в непрерывной строке, а в строке типа "Слово слово слово,слово"=(

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string vowels = "aeiou";

int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;

return res;
}

int main()
{
string a;
getline(cin, a);
cout << a << "\n";
cout << countvowels(a);
cin.get();
return 0;
}

так? У cin'a разделитель это пробел, а здесь читается вся строчка до перевода строки.

~NeiTRoN~
10.12.2008, 16:32
jawbreaker, izlesa спасибо большое!!!!=))
Единственное непонял как сделать чтобы вводить можно было несколько строк, мнеж как бы надо из нескольких строк выбирать ту в которой больше гласных, но все равно еще раз спс!

jawbreaker
10.12.2008, 16:53
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string vowels = "aeiou";

int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;

return res;
}

int main()
{
string a, res;
int max = -1;
while(getline(cin, a)) // читаем строку пока не встречаем символ перевода строки
{
if(a == "end")// end означает конец ввода
break;
cout << a << "\n";
cout << countvowels(a) << "\n";
if (countvowels(a) > max)
{
max = countvowels(a);
res = a;
}
}
cout << max << "\n" << res;
cin.get();
return 0;
}

~NeiTRoN~
10.12.2008, 17:20
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string vowels = "aeiou";

int countvowels(const string& s)
{
int res = 0;
for(int i = 0; i < s.length(); i++)
for(int j = 0; j < vowels.length(); j++)
if (s[i] == vowels[j])
res++;

return res;
}

int main()
{
string a, res;
int max = -1;
while(getline(cin, a)) // читаем строку пока не встречаем символ перевода строки
{
if(a == "end")// end означает конец ввода
break;
cout << a << "\n";
cout << countvowels(a) << "\n";
if (countvowels(a) > max)
{
max = countvowels(a);
res = a;
}
}
cout << max << "\n" << res;
cin.get();
return 0;
}

О спс прямо то,что надо!!!=))

~NeiTRoN~
10.12.2008, 21:51
Возник еще вопрос.
Вот есть код:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<iostream>
#define YES 1
#define NO 0
void main()
{
const int m=10;
char string[m][80],d;
int n,i,j,beg;
int inword=NO;
i=0;
while (gets(string[i])!=NULL)
i++;
int k=i;
printf("\n");
for(i=0;i<k;i++)
{

n=strlen(string[i][j]);
for(j=0;j<=n;j++)
if(string[i]+j)==' ' || string[i]+j=='\0' || string[i]+j==',')
{if(inword==YES)
{
d=*(string[i]+j-1);
*(string[i]+j-1)=*(string[i]+beg);
*(string[i]+beg)=d;
}
inword=NO;
}
else
if(inword==NO)
{inword=YES;beg=j;}
}
for(i=0;i<k;i++)
puts(string[i]);
getch();
}
Поидеи он должен выпонять следующую функцию:Вводится текст не больше 10 строк и не более 80 символов в строке и меняет у каждого слова последнюю букву!Но он почемуто не хочет этого делать=( Кто подскажет в чем косяк в коде???

izlesa
11.12.2008, 00:03
Ну во первых код в корне неправильный )
Если мы в string[i][j] имеем массив строк то, чтото в этом роде [WARNINGZ : НЕ ТЕСТИРОВАЛОСЬ]


//должно менять первую и последнюю букву в каждом слове
//работать должно только со строчными буквами a-z
for(int i = 0; i < iNumOfRows - 1; i++)
{
for(int j = 0; j < iNumOfCols - 1; j++)
{
if(((string[i][j] == ' ') || (string[i][j] == '\0')) && (inWordFlag == 1))
{
inWordFlag = 0;
string[i][j-1] = cFirstChar;
}
else if((string[i][j] > 'a') && (string[i][j] < 'z') && (inWordFlag == 0))
{
inWordFlag = 1;
cFirstChar = string[i][j];
}
}
}



А с массивами ты работать не умеешь ...

Alexandr II
11.12.2008, 22:56
срочно нужно написать программу моделирования работы автобусного парка.
Сведения о каждом автобусе содержат:
1. Номер автобуса
2. Фамилию и инициалы водителя
3. Номер маршрута
Программа должна обеспечить выбор с помощью меню и выполнение одной из след. операций:
1. Начальное форматирование данных о всех автобусах в парке в виде списка (ввод с клавиатуры или из файла).
2. Имитация выезда автобуса из парка: вводится номер автобуса, программа удаляет данные об этом автобусе из списка автобусов, находящихся в парке и записывает эти данные в список автобусов, находящихся на маршруте.

это нужно написать на С++ с меня незаржавеет ;)

5w17ch3r
12.12.2008, 00:47
Ребят, нужна помощь. Надо написать программу на паскале, который я уже 3 года в глаза не видел... Нужно чтобы программа вычисляла и выводила на экран таблицу значений функции y = система: первое уравнение: sqrt(x^3+2x-1), при x<2; второе уравнение: sqrt^5((1)/(x^2+3x-5)), при x>=2. x принадлежит отрезку [-1;3], шаг изменения 0,05.

Если кто возьмется, icq:455422511

lisa99
12.12.2008, 01:34
Если кто возьмется, icq:455422511

утром напишу (с 9 по м.). поздновато уже......

jawbreaker
12.12.2008, 01:56
Alexandr II
вот, набросал перед сном:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

struct Bus
{
int BusNumber;
int RouteNumber;
string driver;
};

void ShowList(const vector<Bus> & buses)
{
for (int i = 0; i < buses.size(); i++)
{
cout << "Bus Number: " << buses[i].BusNumber
<< " Route Number: " << buses[i].RouteNumber
<< " Driver name: " << buses[i].driver << "\n";
}
}

int main()
{
vector<Bus> buses;//список автобусов стоящих в парке
char ch;
cout << "Type y for keyboard and n for file\n";
cin >> ch;
if(ch == 'y')
{
cout << "Enter a number of buses!\n";
int n;
cin >> n;
Bus temp;
for (int i = 0; i < n; i++)
{
cin >> temp.BusNumber >> temp.RouteNumber >> temp.driver;
buses.push_back(temp);
}
}
else
if (ch == 'n')
{
freopen("input.in", "r", stdin);
int n;
cin >> n;
Bus temp;
for (int i = 0; i < n; i++)
{
cin >> temp.BusNumber >> temp.RouteNumber >> temp.driver;
buses.push_back(temp);
}
}
else
{
cout << "Error!\n";
return 0;
}
ShowList(buses);

vector<Bus> inroute; // список автобусов отправившихся в далёкий путь
int num;
cout << "Enter a bus number:\n";
cin >> num;
for (int i = 0; i < buses.size(); i++)
{
if(buses[i].BusNumber == num)
{
inroute.push_back(buses[i]);
buses.erase(buses.begin()+i);
}

}
ShowList(inroute);
cin.get();
cin.get();
ShowList(buses);
cin.get();
cin.get();
return 0;
}

P3L3NG
12.12.2008, 02:12
Нужно реализовать алгоритм Хаффмана на Pascal-е

Об алгоритме Хаффмана (http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_% D0%A5%D0%B0%D1%84%D1%84%D0%BC%D0%B0%D0%BD%D0%B0)

вот что есть. знаю, что надо перекроить сильно =))

хэлп ми если кому не очень трудно
program haffman;
USES CRT;
Label link1;
Var S, R:array[1..7] of integer; {начальный массив и упорядоченный}
wordshifr:array[1..10] of string;
{шифрованное двоичным кодом слово}
stroka, st, word:string;
{stroka - то что вводим, st - путь, word - слово для шифрования}
f:file;
z, x, c, v, b, n, m, def:Char;
{символы алфавита, def - символ, который читается из заданной строки. для сравнения с символами данного алфавита}
n1, n2, n3, n4, n5, n6, n7, symbol: integer;
{количество символов, symbol - меняется в цикле для записи количества символов }
shag, min:integer;
{счетчик шагов цикла, min - минимальное число в начальном массиве}
z1, x1, c1, v1, b1 ,n1 ,m1:string;
{двоичные коды символов}

begin
ClrScr;
{объявляем переменные}
z:=z;
x:=x;
c:=c;
v:=v;
b:=b;
n:=n;
m:=m;
n1:=0;
n2:=0;
n3:=0;
n4:=0;
n5:=0;
n6:=0;
n7:=0;

{считаем строку для составления алгоритма Хаффмана}
write('vvedite stroku iz bukv z,x,c,v,b,n,m');
readln(stroka);
{укажем файл}
write('ukajite put k failu i ego imya -');
readln(st);
Assign(f, st);
rewrite(f);
write(f, stroka);
{посчитаем количество каждого из 7 символов}
while not eof(f) do
begin
read(f,def);
if def=z then n1:=n1 + 1;
if def=x then n1:=n2 + 1;
if def=c then n1:=n3 + 1;
if def=v then n1:=n4 + 1;
if def=b then n1:=n5 + 1;
if def=n then n1:=n6 + 1;
if def=m then n1:=n7 + 1;
end;

close(f);

{запишем в первый массив все полученные количества символов}
symbol:=n1;
{объявим symbol = n1 , чтобы записать количество символов Z в первую ячейку}
link1:
for shag:=1 to 7 do
begin
S[shag]:=symbol;
if symbol=n1 then symbol:=n2;
GOTO link1;
if symbol=n2 then symbol:=n3;
GOTO link1;
if symbol=n3 then symbol:=n4;
GOTO link1;
if symbol=n4 then symbol:=n5;
GOTO link1;
if symbol=n5 then symbol:=n6;
GOTO link1;
if symbol=n6 then symbol:=n7;
GOTO link1;
if symbol=n7 then symbol:=n7;
end;
{получили массив, заполненный целыми числами = количеству каждого символа в строке}
{перенесем элементы массива в порядке убывания}
for shag:=1 to 7 do begin
while (shag+1)<=7 do
begin
If S[shag]<S[shag+1] then min:=S[shag];
end;
R[8-shag]:=min;
end;
z1:="0";
x1:="10";
c1:="110";
v1:="1110";
b1:="11110";
n1:="111110";
m1:="1111111";
{получили коды символов}
write('napishite slovo, sostoyachee iz bukv alfavita, chtobi zashifrovat ego - ');
Readln(word);

Assign(f, 'C:\811\recent.txt');
rewrite(f);
write(f, word);

{шифруем слово}
shag:=1;
while not eof(f) do
begin
read(f,def);
if def=z then wordshifr[shag]:=z1;
if def=x then wordshifr[shag]:=x1;
if def=c then wordshifr[shag]:=c1;
if def=v then wordshifr[shag]:=v1;
if def=b then wordshifr[shag]:=b1;
if def=n then wordshifr[shag]:=n1;
if def=m then wordshifr[shag]:=m1;
shag:=shag+1;
end;
close(f);
write('slovo ',word,'zashifrovano! rezultat - ');
writeln(wordshifr);
end.



еще есть вот такое
program huffman;

const sb=256;

type obr=record
vl:longint;
len:byte
end;

var a:array[0..511]of longint;
b:array[byte]of word;
c:array[0..1,byte]of word;
st:array[byte]of byte;
j,obc:byte;
f,g:file;
obb,size:longint;
brp,brm,bwp:word;
bufr,bufw:array[0..sb-1]of byte;
reof:boolean;
o:array[byte]of obr;


procedure opget(var f:file;s:string);
begin
assign(f,s);
reset(f,1);
blockread(f,bufr,sb,brm)
end;


procedure init;
begin
brp:=0;
brm:=0;
bwp:=0;
obb:=0;
obc:=0;
reof:=false
end;


procedure putc(var f:file;b:byte);
begin
if bwp=sb then begin blockwrite(f,bufw,sb); bwp:=0 end;
bufw[bwp]:=b;
inc(bwp)
end;


procedure clput(var f:file);
begin
putc(f,obb shr 24);
blockwrite(f,bufw,bwp);
close(f)
end;


procedure out(var out:file;ch:byte);
var glk:byte;
begin
obb:=obb or o[ch].vl shl (32-o[ch].len-obc);
inc(obc,o[ch].len);
while obc>=8 do begin
glk:=obb shr 24;
putc(out,glk);
obb:=obb shl 8;
dec(obc,8)
end
end;


procedure sift(l,r:word);
var i,j,x:word;
begin
i:=l; j:=l+l+1; x:=b[l];
if (j<r)and(a[b[j]]>a[b[j+1]])then inc(j);
while (j<=r)and(a[x]>=a[b[j]])do begin
b[i]:=b[j]; i:=j; j:=j+j+1;
if (j<r)and(a[b[j]]>a[b[j+1]])then inc(j)
end;
b[i]:=x
end;


procedure obh(i:word;p:byte);
begin
if i<256 then begin
o[i].len:=p;
o[i].vl:=0;
for j:=0 to p-1 do o[i].vl:=o[i].vl shl 1+st[j]
end
else begin
st[p]:=0;
obh(c[0,i-256],p+1);
st[p]:=1;
obh(c[1,i-256],p+1)
end
end;
procedure build;
var i,p:word;
begin
for i:=0 to 255 do b[i]:=i;
for i:=127 downto 0 do sift(i,255);
p:=0;
for i:=255 downto 1 do begin
c[0,p]:=b[0];
b[0]:=b[i];
sift(0,i-1);
c[1,p]:=b[0];
b[0]:=p+256;
a[p+256]:=a[c[0,p]]+a[c[1,p]];
sift(0,i-1);
inc(p)
end;
obh(p+255,0)
end;


procedure getc(var f:file);
var ch:byte;
begin
ch:=bufr[brp];
out(g,ch);
inc(a[ch]);
inc(brp);
if brp=brm then begin
if eof(f) then reof:=true else build;
blockread(f,bufr,sb,brm); brp:=0
end
end;



begin
init;
opget(f,paramstr(1));
size:=filesize(f);
assign(g,'test.glk');
rewrite(g,1);
blockwrite(g,size,4);
for j:=0 to 255 do a[j]:=1;
build;
while not reof do getc(f);
clput(g)
end.

что нужно:
считать строку символов, состоящую из 5 букв (алфавит), посчитать вероятность каждой появления каждой буквы, создать динамическое дерево, которое присваивает двоичный код каждому символу.

не откажусь и от просто частичных фрагментов, думаю смогу разобраться. прост еще не прошли динамические указатели :(

кто поможет благодарность и небольшой денежный бонус ( щас не при деньгах :( )

Alexandr II
12.12.2008, 02:53
Alexandr II
вот, набросал перед сном:
спс большое :) спас ;)

lisa99
12.12.2008, 15:18
Ребят, нужна помощь. Надо написать программу на паскале, который я уже 3 года в глаза не видел... Нужно чтобы программа вычисляла и выводила на экран таблицу значений функции y = система: первое уравнение: sqrt(x^3+2x-1), при x<2; второе уравнение: sqrt^5((1)/(x^2+3x-5)), при x>=2. x принадлежит отрезку [-1;3], шаг изменения 0,05.

Если кто возьмется, icq:455422511

program zad;
uses CRT;
var x,y: real;
begin
ClrScr;
writeln ('--------------------- Funcktion --------------');
x:=-1;
while x< 3 do begin
if x<2 then
begin
y:=sqr(exp(3*ln(abs(x)))+2*x-1);
end
else
begin
y:=x;
end;

x:=x+0.05;
writeln('y=',y);
end;
end.

мде...сколько спотыкалась. сама все забыла..
В общем, вторую функцию скорректируй. Замени на свою, мне не понравилась твоя запись.

xaldey
12.12.2008, 16:19
Нужно вычислить интеграл методом трапеций путем создания цикла подпроцессов, которые моделируют работу виртуальных процессоров при их асинхронному параллельном выполнении в виде цикла создания подпроцессов.

http://img166.imageshack.us/img166/6940/16605022ln9.jpg
Короче полная засада, как решить все ето на делфи не знаю.... Помогите кто может.
аська: 4пять879236четыре

Asp1r1n
12.12.2008, 18:53
Задача: найти все перестановки целого числа длинной n. Вот мой алгоритм.

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *out;
int data[10]; //10 элементов будет досточно
int n; //кол-во элементов для перестановок
int tmp, min;
int invert;//номер элемента для перестановки
int i, j; //счетчики
int scrambling=0; //кол-во записей
bool go=true;//true-продолжить вычисления, false - остановиться.;
char inbuf[2];

start:
printf("Enter the number(1-9): ");
gets(inbuf);
sscanf(inbuf,"%d",&n); //ввод числа с клавиатуры
if(n<1||n>9) //проверка на введенное число
{
printf("Error!!\n");
goto start;
}

out=fopen("output.txt", "w");
//n=4;
for (i = 0; i < n; i++) //заполняем массив
{
data[i] = i+1;
}

while (go)
{
go = false;
for (i =0; i < n; i++)
{
printf("%d", data[i]); //вывод на экран массива т.е. одной строчки.
fprintf(out, "%d", data[i]);
}
scrambling++;//Количество перестановок увеличилось на единицу.
if(n==1) //если n единица, то выход из цикла.
{
printf("\n");
fprintf(out, "%d", data[i]);
break;
}
/* 1. Двигаемся с предпоследнего элемента перестановки, ищем элемент data[i],
удовлетворяющий неравенству data[i] < data[i + 1] */
for (i = n - 2; i>= 0; i--) //перебираем возможные перестановки
{
if (data[i] < data[i + 1]) //если ни разу не выполяентся, то go останется false,
{
invert=i; //номер элемента, который будем переставлять
go = true;

break;
}
}
if(go==false){break;};
printf("\n");
fprintf(out, "\n");
/* 2. Меняем местами элемент data[invert] с наименьшим элементом, который:
находится праве data[invert] и является больше чем data[invert] */
for (i=invert+1; i<n; i++)
{
if(data[invert]<data[i]){min=i;}
}
tmp=data[invert];
data[invert] = data[min];
data[min] = tmp;
/* 3. Все элементы стоящие правее data[invert] сортируем по возрастанию*/
/*Сортировка пузырьковым методом*/
for (j=invert+1;j<n; j++)
{
for(i=invert+1;i<n-1;i++)
{
if(data[i]>data[i+1])
{
tmp=data[i];
data[i]=data[i+1];
data[i+1]=tmp;
}
}
}
}
printf("\n\nScrambling=%d\n",scrambling);
fclose(out);
system("PAUSE");
return 0;
}



Преподаватель попросил усовершенствовать его, а именно обезопаситься от одинаковых значений (хотя и так понятно, что их там нет), а так же подтворить, что все вариантов перестановок больше нет.
Мои идеи по этому поводу. Перестановок может быть N!, а значит что если N! будет равно scrambling, то перестановок именно нужное кол-во. Препод сказал следующее, а вдруг встретятся одинаковые перестановки, тогда scrambling не будет равно N!.

Что касается одинаковых строчек, можно каждый раз перед выводом(записью) новой строки сравнивать ее со всеми предыдущими из файла, на сколько это угробит скорость работы?

Помогите идеями с этими двумя вопросам. Реализация не обязательно, хотя не откажусь.

Если у вас имеется другие алгоритмы для данной задачи, то хотел бы увидеть их тоже. Тема должна быть близка вам (генераторы паролей, icq номеров и т.п.)


Спасибо за внимание.

lisa99
12.12.2008, 20:47
2Asp1r1n:
не стоит задавать исходный массив, как упорядоченную последовательность
1,2,3,4.
Тестировать лучше на рэндомных числах.
Особенно, когда идет привязка к сортировке по возрастанию

п.с. формально препод абсолютно прав.

Delimiter
12.12.2008, 21:09
2 Asp1r1n
все перестановки элементов массива у которых элементы могут совпадать
не является тривиальной задачей
например 11111 существуеет одна единственная перестановка а не 5! 8))
...
если необходимо найти общее количество перестановок то математически
находится
G=N!
Total=G-F
где F - это всевозможные перестановки одинаковых!

HencH_MaN
12.12.2008, 21:45
Посмотрите плз код вот что я написал для своей лабы!!!!
18. Написать программу, которая находит в каждой строке матрицы F размерности m n максимальный и минимальный элементы и помещает их на место первого и последнего элемента строки соответственно.

#include<iostream>
#include<alloc.h>
#include<conio.h>
using namespace std;
int main()
{
int i,j,x;
cout<<endl<<"m=";
int m;
cin>>m;
cout<<endl<<"n=";
int n;
cin>>n;
if(m<1||n<1) return -1;
double**a=new double*[m];
for(i=0;i<m;i++)
{
a[i]=new double[n];
for(int j=0;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
int k;
int*b=new int[m];
int min,l;
i=0;x=0;
while(i<m)
{
int min=a[i][0],max=a[i][0],l;
for(int j=1;j<n;++j)
{
if (a[i][j]<min) min=a[i][j];
if (a[i][j]>max) max=a[i][j];
}
l=(2*m-i);
b[l]=max;
b[i]=min;
++i;
}
int p;
for (p=0;p<m;p++){
cout<<"b["<<p<<"]="<<b[p];}
getch ();
return 0;
}

izlesa
13.12.2008, 01:26
2HencH_MaN
Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код.

Да и в чём собственно вопрос?

Delimiter
13.12.2008, 03:12
наверно у него утечка памяти 8))) так активно new использует что даже забыл что есть и delete!

N1K70
13.12.2008, 11:55
задачи на паскале:

_http://contest.samara.ru/ru/contests/139/

ps: не для слабонервных ;)

lisa99
13.12.2008, 13:00
задачи на паскале:

_http://contest.samara.ru/ru/contests/139/

ps: не для слабонервных ;)

и что ты этим хотел сказать?

HencH_MaN
13.12.2008, 21:51
2HencH_MaN
Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код.

Да и в чём собственно вопрос?
Вопрос в том что упорядочивание не производиться :(
#include<iostream>
#include<alloc.h>
#include<conio.h>
using namespace std;
int main()
{
int i,j,x;
cout<<endl<<"m=";
int m;
cin>>m;
cout<<endl<<"n=";
int n;
cin>>n;
if(m<1||n<1) return -1;
double**a=new double*[m];
for(i=0;i<m;i++)
{
a[i]=new double[n];
for(int j=0;j<n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
int k;
int*b=new int[m];
int min,l;
i=0;x=0;
while(i<m)
{
int min=a[i][0],max=a[i][0],l;
for(int j=1;j<n;++j)
{
if (a[i][j]<min) min=a[i][j];
if (a[i][j]>max) max=a[i][j];
}
l=(2*m-i);
b[l]=max;
b[i]=min;
++i;
}
int p;
for (p=0;p<m;p++){
cout<<"b["<<p<<"]="<<b[p];}
getch ();
return 0;
}

scrat
13.12.2008, 22:26
Если кому-нибудь когда-нибудь понадобится построение ПОЛИЗ(польской инверсной записи - парсинг выражений). То вот вам моя его реализация на c#:


public void Parse(string text)
{
Stack<char> stack = new Stack<char>(); //рабочкий стек

string ret = ""; //собственно сам полиз

for (int i = 0; i < text.Length; i++)
{
if (text[i] == '(') stack.Push('(');
if (char.IsLetter(text[i]) || char.IsDigit(text[i])) ret += text[i];



if (text[i] == '-'||text[i]=='*'||text[i]=='/'||text[i]=='+')
{
while (stack.Count!=0 && stack.Peek() != '(') // выталкиваем все с большим приоритетом
{
char a = stack.Pop(); //вынимаем...
if (GetOperationPriory(text[i]) < GetOperationPriory(a)) ret += a;
}
stack.Push(text[i]);
}


if (text[i] == ')')
{
while(stack.Count!=0&&stack.Peek()!=')')
{
char k = stack.Pop();
if (k != ')'&&k!='(') ret += k;
}
}
}
if (stack.Count != 0)
{
while (stack.Count != 0)
{
if (stack.Peek() != '(') ret += stack.Pop();
else stack.Pop();
}
}
label2.Text = ret;

}


private int GetOperationPriory(char sym) //приоритет операций
{
if (sym == '+') return 1;
if (sym == '-') return 2;
if (sym == '*') return 3;
if (sym == '/') return 4;
else return 0;
}

criz
13.12.2008, 22:51
2 HencH_MaN, прогу не компилил, но вроде это

for (p=0;p<m;p++)
{
cout<<"b["<<p<<"]="<<b[p];
}

выводит одну строку из массива, попробуй добавить еще один цикл.

izlesa
13.12.2008, 23:24
2HencH_MaN
Башка не рабатает, так что вот тебе немножечко моего говнокода;

На что стоит обратить внимания:
1. Нет никакой обработки случаев когда malloc возвращает нулевые указатели вместо валидных. Это фигово, но мне влом.
2. В задании нет указания на то, что надо обменивать элементы - первый с минимальным, последний с максимальным. Так что я сделал затирание максимальным и минимальным значением последнего и первого элемента строки.
3. Костыли в виде инициализации iMax, iMin максимально и минимально возможными значениями для int сделаны по причине нулевой мотивации облагораживать код и вводить дополнительные if. Так, что если хочешь сделать не машиннозависимый код, то вперёд ^____^



#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int iRowsSize, iColsSize, iMin, iMax;
int i, j;
int **pCol;
int *pRow;

iRowsSize = iColsSize = 0;
iMax = 0x80000000;
iMin = 0x7FFFFFFF;

printf("Input number of rows : ");
scanf("%d", &iRowsSize);
printf("Input number of columns :");
scanf("%d", &iColsSize);

pCol = (int **)malloc(iColsSize * sizeof(int **));

for(i = 0; i < iColsSize; i++)
{
pRow = (int *)malloc(iRowsSize * sizeof(int));
pCol[i] = pRow;
for(j = 0; j < iRowsSize; j++)
{
printf("Input [%d][%d] element : ", i, j);
scanf("%d", &pCol[i][j]);
}
}

for(i = 0; i < iColsSize; i++)
{
for(j = 0; j < iRowsSize; j++)
{
iMax = (pCol[i][j] > iMax) ? pCol[i][j] : iMax;
iMin = (pCol[i][j] < iMin) ? pCol[i][j] : iMin;
}
pCol[i][0] = iMin;
pCol[i][iRowsSize - 1] = iMax;
iMax = 0x80000000;
iMin = 0x7FFFFFFF;
}

for(i = 0; i < iColsSize; i++)
{
for(j = 0; j < iRowsSize; j++)
{
printf("[%d][%d] element : %d ", i, j, pCol[i][j]);

}
free(pCol[i]);
printf("\n");
}
free(pCol);

return 0;
}

HencH_MaN
14.12.2008, 12:10
Спасибо,izlesa,помог студенту =)

akwaNOX
14.12.2008, 14:01
подкиньте плиз, исходник простой программы(любой) написанной на FLTK/FLUID

Stern
14.12.2008, 17:30
Люди помогитее плиииз с http://forum.antichat.ru/showpost.php?p=969281&postcount=823

надо на с++ :( время в обрез((( осталось

jawbreaker
14.12.2008, 19:15
Stern
вот тебе первое задание с комментариями а как делать остальные это уже твоя забота

#include <vector>
#include <iostream>
#include <algorithm>
#include <cstdio>

#define SIZE 10

using namespace std;

double get_ave(const vector <int> & a) // функция считающее среднее значение числа
{
int sum = 0;
for (int i = 0; i < a.size(); i++)
{
sum += a[i];
}
return sum / (a.size() + .0); // делим сумму всех чисел на размер массива
}

void ShowArray(const vector <int> & a) // функция для вывода массива на экран
{
cout << "Array: ";
for (int i = 0; i < a.size(); i++)
{
cout << "a[i]:" << a[i] << "\n";
}
}

int main()
{
cout << "Fill random (y/n)?\n";
char ch;
cin >> ch;
vector <int> a(SIZE);
if (ch == 'y')
{
srand(32000);
for (int i = 0; i < SIZE; i++)
{
//srand(100);
a[i] = rand() % 100;
}
}
else
if(ch == 'n')
{
for (int i = 0; i < SIZE; i++)
{
cin >> a[i];
}
}
ShowArray(a);
int N;
cout << "Enter number!\n";
cin >> N;
if((N < SIZE) && (N >= 0))
{
a[N] = get_ave(a);
}
ShowArray(a);
cin.get();
sort(a.begin(), a.end());
ShowArray(a); // выводим отсортированный массив
cin.get();
return 0;
}

SAGib
14.12.2008, 19:45
Народ,подскажите по такой трабле:
Составить блок схему котрая выводит на экран сумму двух чисел,равную числу от 1 до 9 введеному с клавиатуры
например 6=5+1, 9=4+5... и так от 1 до 9

З.Ы. заранее благодарен :)

lisa99
14.12.2008, 23:40
Народ,подскажите по такой трабле:
Составить блок схему котрая выводит на экран сумму двух чисел,равную числу от 1 до 9 введеному с клавиатуры
например 6=5+1, 9=4+5... и так от 1 до 9


непонятно сформ. условие.
уточни

SAGib
15.12.2008, 00:34
непонятно сформ. условие.
уточни
Как я понял нужно приложение работающее в консоли,которое при вводе числа от 1 до 9ти выводит сумму этого числа в 2х цифрах т.е. при вводе 6 будет выводится числа 5+1 либо 2+4 и так далее...
З.Ы. Точнее сказать немогу т.к. меня попросили помоч и я в с++ нешарю

InfernoNet
15.12.2008, 13:49
Задание:
Заполнить матрицу размерностью n на m (nxm) числами, которые деляться без остатка на число S. Строку с индексом K разделить на число S.
--
Заранее спасибо.

Sinay
15.12.2008, 18:14
какой язык или тебе сам алгоритм нужен?

MRAK9
15.12.2008, 22:56
НУ ПОЖАЛУЙСТА......HELP!!!!

задачка... точнее три... для вас это пару пустяков... на паскале:
1-определить делится ли число N на n нацело
2-вводим с клавиатуры дробное N и вычисляем среднее арифметическое
3-найти сумму вводимых с клавиатуры чисел конец ввода число 0

InfernoNet
15.12.2008, 23:03
какой язык или тебе сам алгоритм нужен?
sorry, C++

_empty
15.12.2008, 23:45
sorry, C++

#include <iostream>
#include <stdio.h>

using namespace std;

#define N 10
#define M 10
//распечатка массива
void _show(int mat[][M]) {
printf("\n\n");
for ( int i=0; i<N; i++) {
for ( int j=0; j<M; j++) {
printf("%5i ",mat[i][j]);
}
printf("\n");
}
printf("\n");
}

int main(int argc, char *argv[])
{
int matrix[N][M];
int num=0, K=0, S=0;
printf("Номер строки: ");
scanf("%i", &K);
printf("Число для деления: ");
scanf("%i", &S);
//ЗАполнение массива
for ( int i=0; i<N; i++) {
for ( int j=0; j<M; j++) {
do {
matrix[i][j]=rand()%10000;
//либо заполняй вручную через scanf("%i",&matrix[i][j]);
//или можно сразу проиницилазировать,
} while ( (matrix[i][j] % S) );
}
}
//распечатка массива
_show(matrix);
//Делим числа строки К на S
for ( int j=0; j<M; j++ ) {
matrix[K][j]=matrix[K][j]/S;
}
//распечатка массива
_show(matrix);

return 0;
}

ВОт писал ее для gcc, надеюсь подредактировать на винду сможешь? если вопросы возникнут напиши в личку

Delimiter
16.12.2008, 00:00
>> числами которые делятся на S без остатка =>

числа P=S*N (где N натуральные)

_empty
16.12.2008, 01:00
>> числами которые делятся на S без остатка =>

числа P=S*N (где N натуральные)

Привет, давно не был тут.

Твой пост это к чему? Я что то не так сделал?

kyoko
16.12.2008, 01:24
нужно - Написать программу, которая бы перекодировала текстовый файл из кодировки MS-DOS в кодировку MS Windows. на с++.

пожалуйста помогите!!!

ss88
16.12.2008, 01:57
//из ДОС в Windows
char* Decode_DOS_to_Win(char * str)
{
unsigned char *cstr=str;//"unsigned" - чтоб избежать предупреждений комп-ра
for(; *cstr; cstr++)
{
if(*cstr>=128 && *cstr<=175)
*cstr+=64;
else if(*cstr>=224 && *cstr<=239)
*cstr+=16;
else if(*cstr==252)
*cstr=185;
}
return str;
}
//----------------------------------------------------

//из Windows в ДОС
char* Decode_Win_to_DOS(char * str)
{
unsigned char *cstr=str;
for(;*cstr;cstr++)
{
if(*cstr>=240)
*cstr-=16;
else if(*cstr>=192)
*cstr-=64;
else if(*cstr==185)
*cstr=252;
}
return str;
}
Основные функции вот, с остальным разберешься?

Fepsis
16.12.2008, 02:04
НУ ПОЖАЛУЙСТА......HELP!!!!

задачка... точнее три... для вас это пару пустяков... на паскале:
1-определить делится ли число N на n нацело
2-вводим с клавиатуры дробное N и вычисляем среднее арифметическое
3-найти сумму вводимых с клавиатуры чисел конец ввода число 0
1)

Program delenie;
uses crt;
var n,m:integer;
x: real;

begin
clrscr;
write('N=');
readln(n);
write('n=');
readln(m);
x:=n mod m;
writeln;
if x=0 then
writeln(n,' delitsya nacelo na ',m)
else
writeln(n,' NE delitsya nacelo na ',m);
readln;
end.

2) не понял условия... Среднее арифметическое чего..??!

3)

Program summa;
uses crt;
var n,m,s:integer;
x: real;
begin
clrscr;
s:=0;
writeln('BBeDuTE 4uCJIA, CyMMy KoToPblX HaDO y3HATb');
repeat
readln(n);
s:=s+n;
until n=0;
writeln('CyMMA = ',s);
readln;
end.

Magarjoba
16.12.2008, 20:22
есть малый дум, по поводу вот чего.....:
типа есть массив букв от [a...z], и N количество знаков =4,
вот мне надо сгенерировать типа в таком виде чтоб вышло.......
aaaa
aaab
aaac
........ :
пока дойдет до
zzzz
чтоб с выходным файлом о полученном результате в виде *.txt
:confused: :confused:
просто у меня тут делфя стоит, а я в нёй нешарю, чтото другое поставить немогу админ забанил......
вот такая проблема((, если я непоадресу то извените, но уже то количество литературы кот я пролистал непомогает.......(( помогите кто нить!!

MRAK9
16.12.2008, 20:29
1)

2) не понял условия... Среднее арифметическое чего..??!


вопщем вводятся несколько дробных чисел и ищется их среднее арифметическое

HELP!!! очень жду

jawbreaker
16.12.2008, 22:35
MRAK9

Program summa;
uses crt;
var m:integer;
x,s,n: real;
begin
clrscr;
s:=0;
writeln('BBeDuTE 4uCJIA');
repeat
readln(n);
s:=s+n;
m:=m+1;
until n=0;
writeln(s / m);
readln;
end.

HealeR
16.12.2008, 22:53
в общем есть документ, старый текстовый, в нём форматирование забито полностью пробелами... нужна программа, распознающая эти пробелы и заменяющая их стандартным форматированием ms word. други, помогите, натолкните на мысль!
vc++

MRAK9
16.12.2008, 22:55
MRAK9

Program summa;
uses crt;
var m:integer;
x,s,n: real;
begin
clrscr;
s:=0;
writeln('BBeDuTE 4uCJIA);
repeat
readln(n);
s:=s+n;
m:=m+1;
until n=0;
writeln(s / m);
readln;
end.


и чего это? к чему оно? чтот я не понял...

Sinay
16.12.2008, 23:09
и чего это? к чему оно? чтот я не понял...

задачу сформулируй нормально,тогда помогут

MRAK9
16.12.2008, 23:11
задачу сформулируй нормально,тогда помогут

С клавиатуры вводятся несколько дробных чисел, программа должна вычислить их среднее арифметическое

Sinay
16.12.2008, 23:14
jawbreaker тебе написал,разве не работает?

Fepsis
17.12.2008, 00:03
jawbreaker тебе написал,разве не работает?
Не работает..) :D :D jawbreaker кавычку не закрыл :D :D :D
Program summa;
uses crt;
var m:integer;
x,s,n: real;
begin clrscr;
s:=0;
writeln('BBeDuTE 4uCJIA');
repeat readln(n);
s:=s+n;
m:=m+1;
until n=0;
writeln(s / (m-1));
readln;
end.

Так же как и в задаче №1, в этой задаче ввод ноля означает окончание ввода.. Мне кадется "0" не надо считать слагаемым, поэтому и (m-1)...

Sinay
17.12.2008, 00:06
Не работает..) :D :D jawbreaker кавычку не закрыл :D :D :D
Program summa;
uses crt;
var m:integer;
x,s,n: real;
begin clrscr;
s:=0;
writeln('BBeDuTE 4uCJIA');
repeat readln(n);
s:=s+n;
m:=m+1;
until n=0;
writeln(s / (m-1));
readln;
end.

Так же как и в задаче №1, в этой задаче ввод ноля означает окончание ввода.. Мне кадется "0" не надо считать слагаемым, поэтому и (m-1)...


я както невнимательно просмотрел,там еще переменной m значение надо присвоить,начальное

Fepsis
17.12.2008, 00:09
есть малый дум, по поводу вот чего.....:
типа есть массив букв от [a...z], и N количество знаков =4,
вот мне надо сгенерировать типа в таком виде чтоб вышло.......
aaaa
aaab
aaac
........ :
пока дойдет до
zzzz
чтоб с выходным файлом о полученном результате в виде *.txt
:confused: :confused:
просто у меня тут делфя стоит, а я в нёй нешарю, чтото другое поставить немогу админ забанил......
вот такая проблема((, если я непоадресу то извените, но уже то количество литературы кот я пролистал непомогает.......(( помогите кто нить!!
То есть тебе не важно на каком языке, главное результат..??! Тогда открывай блокнот, пиши туда
Dim My1Array(25)
Dim oFso
Dim oMyFile

Set oFso = CreateObject("Scripting.FileSystemObject")
Set oMyFile = oFso.CreateTextFile("output.txt")

My1Array(0) ="a"
My1Array(1) = "b"
My1Array(2) = "c"
My1Array(3) = "d"
My1Array(4) = "e"
My1Array(5) = "f"
My1Array(6) = "g"
My1Array(7) = "h"
My1Array(8) = "i"
My1Array(9) = "j"
My1Array(10) = "k"
My1Array(11) = "l"
My1Array(12) = "m"
My1Array(13) = "n"
My1Array(14) = "o"
My1Array(15) = "p"
My1Array(16) ="q"
My1Array(17) = "r"
My1Array(18) = "s"
My1Array(19) = "t"
My1Array(20) = "u"
My1Array(21) = "v"
My1Array(22) = "w"
My1Array(23) = "x"
My1Array(24) = "y"
My1Array(25) = "z"


For i = 0 To 25
For j = 0 To 25
For k = 0 To 25
For l = 0 To 25

oMyFile.WriteLine(My1Array(i)&My1Array(j)&My1Array(k)&My1Array(l))

Next
Next
Next
Next

сохраняй как ххх.vbs и запускай.. получишь то, что надо..))) :)

.::BARS::.
17.12.2008, 10:53
ИМЕЕТСЯ ОДНОМЕРНЫЙ МАССИВ Х(N).ВЫЧИСЛИТЬ ПРОИЗВЕДЕНИЕ ЭЛЕМЕНТОВ МАССИВА ,ИМЕЮЩИХ НЕЧЕТНЫЙ НОМЕР . МАССИВ Х(N)ВЫВЕСТИ НА ПЕЧАТЬ .

Это надо на visial Basik

GuK0s
17.12.2008, 11:15
1) Определить среднее арифметическое значение элементов матрицы A(N,N)
2)Дан одномерный массив A(N).Сформировать массив B(K)из элементов массива A(N)индексы которых являются числа Фибоначи (1,2,3,5,8,13 и т.д. Fi = Fi-1 + Fi-2)
3) Найти скалярное произведение двух векторов A(n) и B(n)
Указание: скалярное произведение A*B=A1*B1+A2*B2+...+A(n)*B(n)

Написать на С++

С меня +++

n4e/\@
17.12.2008, 13:19
1) Определить среднее арифметическое значение элементов матрицы A(N,N)


#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int mas[99][99];
int x, y, sum=0, r=0;
cin >> x >> y;
for (int i = 0; i < x; i++)
for (int j = 0; j <y; j++){
cin >> mas[i][j];
sum +=mas[i][j];
r++;
}
cout << sum/r;
return 0;
}

GuK0s
17.12.2008, 15:15
+ За старание поставлю. Но я сам сделал почти все.Осталось сделать: 2)Дан одномерный массив A(N).Сформировать массив B(K)из элементов массива A(N)индексы которых являются числа Фибоначи (1,2,3,5,8,13 и т.д. Fi = Fi-1 + Fi-2)

procedure
17.12.2008, 15:56
Это что за говнокод (извиняюсь):
То есть тебе не важно на каком языке, главное результат..??! Тогда открывай блокнот, пиши туда
Dim My1Array(25)
Dim oFso
Dim oMyFile

Set oFso = CreateObject("Scripting.FileSystemObject")
Set oMyFile = oFso.CreateTextFile("output.txt")

My1Array(0) ="a"
My1Array(1) = "b"
My1Array(2) = "c"
My1Array(3) = "d"
My1Array(4) = "e"
My1Array(5) = "f"
My1Array(6) = "g"
My1Array(7) = "h"
My1Array(8) = "i"
My1Array(9) = "j"
My1Array(10) = "k"
My1Array(11) = "l"
My1Array(12) = "m"
My1Array(13) = "n"
My1Array(14) = "o"
My1Array(15) = "p"
My1Array(16) ="q"
My1Array(17) = "r"
My1Array(18) = "s"
My1Array(19) = "t"
My1Array(20) = "u"
My1Array(21) = "v"
My1Array(22) = "w"
My1Array(23) = "x"
My1Array(24) = "y"
My1Array(25) = "z"


For i = 0 To 25
For j = 0 To 25
For k = 0 To 25
For l = 0 To 25

oMyFile.WriteLine(My1Array(i)&My1Array(j)&My1Array(k)&My1Array(l))

Next
Next
Next
Next

сохраняй как ххх.vbs и запускай.. получишь то, что надо..))) :)
Зачем по одной букве инициализировать массив?
Воот:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test
{
class Program
{
static void Main(string[] args)
{
List<char> alphabet = new List<char>();
int num = 0;

for (int i = 97; i <= 122; i++)
alphabet.Add(Convert.ToChar(i));

Console.WriteLine("Enter number: ");
try
{
num = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine("Error: ");
}
foreach (char ww in alphabet)
{
for (int i = 0; i < num; i++)
Console.Write(ww);
Console.WriteLine();
}
}
}
}

Кинул в аттач прогу....

n4e/\@
17.12.2008, 16:55
Осталось сделать: 2)Дан одномерный массив A(N).Сформировать массив B(K)из элементов массива A(N)индексы которых являются числа Фибоначи (1,2,3,5,8,13 и т.д. Fi = Fi-1 + Fi-2)
Ну как то так:

int _tmain(int argc, _TCHAR* argv[])
{
int mas[99], nmas[99], fob[99];
fob[0]=1;
int x, y=0, f1=0, f2=1, j=0;
cin >> x;
while (j!=x) {
f1=f2;
f2=fob[j];
fob[j+1]=f1+f2;
j++;
}

for (int i = 0; i < x; i++) {
mas[i] = rand()%10+1;
for (int c = 0; c <=j; c++){
if (i == fob[c]){nmas[y] = mas[i]; y++;
break;}
}
}

cout << endl;
for (int i = 0; i < y; i++)
cout << nmas[i] << " ";
return 0;
}

Можно наверное без массива фобиначчи обойтись, но помоему лишняя нагрузка.

.::BARS::.
17.12.2008, 17:53
#923 Помогите, плз...

Fepsis
18.12.2008, 00:16
Это что за говнокод (извиняюсь):

Зачем по одной букве инициализировать массив?
Воот:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test
{
class Program
{
static void Main(string[] args)
{
List<char> alphabet = new List<char>();
int num = 0;

for (int i = 97; i <= 122; i++)
alphabet.Add(Convert.ToChar(i));

Console.WriteLine("Enter number: ");
try
{
num = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine("Error: ");
}
foreach (char ww in alphabet)
{
for (int i = 0; i < num; i++)
Console.Write(ww);
Console.WriteLine();
}
}
}
}

Кинул в аттач прогу....
А мне, знаешь ли, влом было ставить какую-то среду программирования, поэтому в ВБС писал в блокноте... И, кстати, автору сообщения, как я понял, не важно было, на чём написано... Главное, чтобы работало... А мой вариант, в отличии от твоего, работает..))) :D

izlesa
18.12.2008, 00:27
2Fepsis
Главное чтобы работало ... эх ... вот из-за этого принципа и имеем тонны говнокода в килограммах говнопрограмм. А потом месяцами отлавливаем плавающие глюки в темной комнате, которой не существует.
Главное не используй свой vbs ни в чём сложнее hello world`а

Savedracon
18.12.2008, 17:14
Привет!Подскажите Формирование к отправке структурированного пакета SNMP
в VB

TTyck
18.12.2008, 21:42
Что-то не могу быстро сообразить. Задание на С++.

Дана строка текста. Необходимо посчитать сумму всех чисел всречающихся в тексе.
Числа целые. Буду благодарен))

jawbreaker
18.12.2008, 21:58
TTyck
вот так например:

#include <string>
#include <iostream>
#include <sstream>

using namespace std;

int main()
{
string text;
getline(cin, text);

istringstream iss(text);
int sum = 0, num;
string cur;
while(iss >> cur)
{
if(sscanf(cur.c_str(), "%d", &num))
sum += num;
}

cout << sum;

cin.get();
return 0;
}

HencH_MaN
19.12.2008, 01:51
Помогите пожалуйста ещё раз,задание звучит так:
Написать функцию, которая перемножает прямоугольные матрицы. Показать варианты вызова функции.
помогите с кодом на С++!!!

VaTTka
19.12.2008, 19:41
Помогите пожалуйста с лабораторкой, последняя осталась, мозги уже пухнут....
Описать структуру с именем TRAIN содержащую следующие поля:
*названия пункта назначения рейса
*время отправления
*номер поезда
Написать программу выполняющую следующие действия:
*ввод с клавиатуры данных в массив, состоящий из 8 элементов типа TRAIN, записи должны быть упорядочены в алфавитном порядке по названию пункта назначения.
*вывод информации о поездах отправляющихся после введенного с клавиатуры времени.
*если таких поездов нет, то вывести соответствующее сообщение.

TeQuila^^
19.12.2008, 21:48
задание по C

1) В заданной последовательности слов найти все слова, имеющие заданное окончание
2) Структура "Кинофильм": - наименование кинотеатра; - наименование кинофильма; - стоимость билета; - время сеансов; - адрес; - количество мест.
Добавить введеный пользователем кинофильм (он идентифицируеться по наименования) в конец, в случае если он отсутствует. А если он существует - то его необходимо вставить после последнего найденного (в списке) кинофильма с таким же именем. Удалить все элементы, у которых количество мест меньше 100.

Огромная просьба - помогите пожааалуйста - если в понедельник не принесу - выгонят из института, если что - аська: 234-307-667 ...

Delimiter
20.12.2008, 00:22
2 TeQuila^^
1.

#define N_WORDS 10
char words[N_WORDS][50];
char okonch[10];
int i,k;
...

for(i=0,k=strlen(okonch);i<N_WORDS;i++)
if(strcmp((char *)&(words[i][strlen((char *)&(words[i][0]))-k]),okonch)==0)
printf("%s",(char *)&(words[i][0]));


... чет не хочется помогать.... там млин РОА релизенги выкладывают .... там жизнь а тут для лохов!

.. пусть РОА тут покажуть 8))

B1ack
20.12.2008, 20:33
Кто-нибудь реализовывал атаку Хастада на RSA? Язык значения не имеет.

TeQuila^^
20.12.2008, 21:17
Тебе во втором задании динамические списки что ли нужны? Объясни поточней задание, я помогу
В отчете требуется - Составить текст функции для:

• формирования файла,
• печати файла,
• добавления записи в файл,
• удаления записи из файла
• поиска структуры для удаления.
ЗЫ Delimiter - огромное спасибо

-=Professor-][=-
21.12.2008, 01:14
В общем имеются некие тесты по C++, большинство из которых я уже прошел. На все то, что так и не удалось ответить - приведено ниже. Поэтому, если кому не лень и знает что-то конкретное по теме, то прошу отписаться. Заранее благодарен.

1. Повторение ряда операторов заданное число раз называется ________ ______ или ________ ______ повторением
2. Когда заранее не известно, сколько раз должна быть повторена группа операторов, можно использовать ____, ____, ____ или _____ _____ для окончания проверки.
3. В адрес операторов break и continue раздается критика по поводу того, что они неструктурны. Действительно, операторы break и continue всегда могут быть заменены структурированными оператора*ми, хотя часто это оказывается неудобным. Опишите, как в общем случае вы могли бы удалить из цикла оператор break и заменить его каким-то структурированным эквивалентом. (Подсказка. Опе*ратор break осуществляет прерывание цикла в заданном месте его тела. Другим путем выхода из цикла является нарушение условия продолжения цикла. Рассмотрите использование в проверке условия продолжения цикла дополнительной проверки, устанавливающей, что «надо досрочно выйти из цикла, потому что выполнено условие его прерывания».) Используя такой прием, удалите оператор break из приведенной ниже программы.

// Применение оператора break в структуре for

КОД
#include <iostream.h>
void main ()

{
for(int x = 1; x <= 10; x++) {
if (x == 5)
break; // прерывание цикла только при х == 5
cout << x << “ “;
}
cout << endl << “Цикл прерван при х == ” << x << end;
return 0;
}

==================

Результат вычислений: цикл прерван при х == 5

Если я правильно понял, то вместо Break надо использовать какой либо еще оператор, если нет - поправьте

_empty
21.12.2008, 02:20
[=-']В общем имеются некие тесты...
Вот КОД ответ на последний вопрос(сразу не догнал, но все просто :) :

#include <iostream.h>
void main ()

{
for(int x = 1; x < 5; x++) {
//if (x == 5)
//Убираем теперь не нужно :) break; // прерывание цикла только при х == 5
cout << x << “ “;
}
cout << endl << “Цикл прерван при х == ” << x << end;
return 0;
}

==================

Результат вычислений: цикл прерван при х == 5



Я так вижу решение твоей проблемы :)

HencH_MaN
21.12.2008, 13:29
Помогите пожалуйста ещё раз,задание звучит так:
Написать функцию, которая перемножает прямоугольные матрицы. Показать варианты вызова функции.
помогите с кодом на С++!!!
К среде нужно готовую лабу принести!!! помогите с меня + + + + + =)

eLWAux
21.12.2008, 18:20
привет
нужна ваша помощь:
нужно написать такие программи:
1) (Численные методы) метод Хемминга
2) (Численные методы) метод Чебишова
3) метод Ньютона с LU розкладом ..
может кто-то уже сталкивался с єтим.. может кто видел что то подобное..
помогите)

~NeiTRoN~
22.12.2008, 18:36
Здарого народ. Кто может помочь с лабой!
Суть лабы вот в чем:В произвольном тексте нужно если в слове встречается боле одного нуля в слове, оставить только один. Пример ма000ма должно стать ма0ма, а па000па п00ил в00оду должно стать па0па п0ил в0оду!
Помогите плиз!!!Очень надо.

Delimiter
22.12.2008, 18:47
если слова лежат единым массивом


char str[1500];
scanf("%s",str);

for(int i=0;*(str+i)!=0 && i<1500;i++)
if(*(str+i)=='0' && *(str+i+1)=='0')
{strcpy(str+i,str+i+1); i--; }



если слова лежат в массиве слов words[][]
char words[N][50];

for(int i=0;i<N;i++)
for(int j=0;words[i][j]!=0;j++)
if(words[i][j]=='0' && words[i][j+1]=='0')
{ strcpy((char *)&(words[i][j]),(char *)&(words[i][j+1])); j--; }

~NeiTRoN~
22.12.2008, 18:55
Delimiter а как сам ввод осуществлять?
Delimiter а с меня требуют ввод gets и не указателем а вида str[i][j] как это оформить?=(

Тилль
22.12.2008, 22:13
#include <stdio.h>
#include <string.h>

#define M 10

int main()
{
int i = 1, num = 0, j;
char buffer1[15], buffer2[15], * strpos;

while(num != M)
{
sprintf(buffer1,"%lu",i);
sprintf(buffer2,"%lu",i*i);
if(strpos = strstr(buffer2, buffer1))
if((strpos-buffer2) == strlen(buffer2) - strlen(buffer1))
{
printf("%lu;%lu\n", i, i*i);
num++;
}
i++;
}
return 0;
}

Откоментируйте пожалуйста вот эту задачу что происходит\зачем надо?!


Помогите ещё решить вот это:
Найти все пары простых чисел, не превосходящие заданного N и отличающихся друг от друга на 2 ("близнецы").

criz
22.12.2008, 22:17
Тилль, не надо скакать из одной темы в другую :)
http://forum.antichat.ru/threadedpost1008963.html#post1008963

Тилль
22.12.2008, 22:24
Спасибо)

~NeiTRoN~
23.12.2008, 09:29
Delimiter большущее спасибо=)

Cereus
23.12.2008, 18:19
HencH_MaN
вроде как то так :

# include <cstdio>
# include <cstdlib>
# include <iostream>

using namespace std;
int function1 (int mas1[3][3],int mas2[3][3]);//прототип функции

int main(){
int nMas1[3][3]={{1,2,3},{1,2,3},{1,2,3}};//матрица1 можно поставить свои значения :-)
int nMas2[3][3]={{1,2,3},{1,2,3},{1,2,3}};//матрица2- так же как и для матрицы1
function1 (nMas1,nMas2);
system ("pause");
}

int function1 (int mas1[3][3],int mas2[3][3]){
int nMasOtvet[3][3]={{0,0,0},{0,0,0},{0,0,0}};//матрица хранящая результат
cout << "Вывод матрицы\n";
for (int i=0;i<3;i++){
cout <<"Произведение строки № "<<i<<" = ";
for (int j=0;j<3;j++){
nMasOtvet[i][j]=mas1[i][j]*mas2[i][j];
cout <<" " << nMasOtvet[i][j];
}
cout <<endl;
}
}

De-visible
24.12.2008, 00:56
Как сделать вот эту прогу??? Помогите срочно !!!Скачать файл Kaleydoskop.exe (http://dump.ru/file/1350360)
пост твой удалю, так как может быть троян, в следующий раз описывай полностью, и если выкладываешь .exe то желательно еще ссылку на отчет вирустотала.

Campery
24.12.2008, 16:03
Срочно нужно доработать программу на C++ под прихоти преподователя. Среда разработки C++ Builder 6. Тема:

"Разработка программного приложения, выполняющего исследование функции одной переменной на некотором интервале: поиск экстремумов, нулей и точек перегиба функции."

Программа работает, щитает и строит, ТУТ (http://disk.tom.ru/7r71muq) архив с моими исходниками и заданием.

Преподу нужно:
1) подключить функции (без указателей компонентов)
2) реализовать class по заданию.

Срочно нужно помочь. Жду в аське(295820085) с предложениями. о цене договоримся.. :confused:

o3,14um
24.12.2008, 16:23
Л.
4.1.7. Реализуйте функцию, которая определяет количество одинаковых элементов массива. Элементами массива могут быть или короткие, или длинные целые числа, или числа с плавающей точкой.
4.2.8. В каждом массиве найти все простые числа. Первым на экран вывести массив имеющий наименьшее их количество, а также эти числа и их порядковые номера в массиве.

С.
4.4.8. Элементом класса является список студентов группы, который включает: фамилию, имя, отчество студента; номер группы(пять цифр и одна буква); средний балл и доход на одного члена семьи. Количество студентов в группе не более 30, но заранее не известно. Определите массив объектов указанного типа(групп не более 25). Напишите программу представления места в общежитии. Общежитие в первую очередь представляется тем студентам, у кого доход на члена семьи меньше трех минимальных зарплат, затем остальным в порядке уменьшения среднего балла. Количество мест в общежитии задается с клавиатуры. Выведите общий алфавитный список очерёдности представления мест в общежитие по всем группам.
4.6.8. Объявите класс, используемый для хранения информации о продукции выпускаемой предприятием(различных наименований не более 30). Компонентами класса являются: наименование изделия; его шифр; количество; стоимость единицы изделия, название предприятия. Для заданного предприятия необходимо вывести следующую информацию: список выпущенной продукции в порядке убывания ее количества; список выпущенной продукции в порядке убывания ее общей стоимости.

Г.
4.3.8. Элементами класса являются указатель на массив целых чисел и целое число, задающее длину массива. В головном модуле определите массив объектов объявленного класса. Рассортируйте объекты по возрастанию суммы элементов массива.
4.5.8. Элементом класса является список студентов спортивной секции. Количество студентов занимающихся в секции не более 25, но заранее не известно. Определите массив объектов указанного типа. Рассортируйте каждый список в алфавитном порядке. Перегрузите операцию ‘+’ для получения списка студентов посещающих несколько секций, а операцию ‘-‘ для получения списка студентов занимающихся в одной секции. Выведите полученные списки в алфавитном порядке.
4.6.8. Объявите класс, используемый для хранения информации о продукции выпускаемой предприятием(различных наименований не более 30). Компонентами класса являются: наименование изделия; его шифр; количество; стоимость единицы изделия, название предприятия. Для заданного предприятия необходимо вывести следующую информацию: список выпущенной продукции в порядке убывания ее количества; список выпущенной продукции в порядке убывания ее общей стоимости.
4.7.3 Компонентой базового класса является указатель на массив чисел с
плавающей точкой, задающий параметры фигуры в пространстве. В производный класс добавляются элемент – объем фигуры и методы вычисления его.

Приятелю в универе задали. Нужно сделать по 1 заданию с каждой буквы.
В СИ я новичёк, сам не смогу сделать такое.
(задание на С# желательно)

Благодарю всех кто решит помочь +)

HencH_MaN
24.12.2008, 21:26
Помогите с лабой,моему другу задали.Задание на С++!!
{
Разработать функцию, которая выбирает из произвольного числа заданных последовательностей чисел последовательность с максимальным средним значением. Показать варианты вызова функции.
}
С меня +++ и благодарности

A2GIL
24.12.2008, 23:50
Не знал куда написать, поэтому решил сюда.
Было задано задание:
Написать клиет-сервеное приложение на VC++ с использованием Sockets. Видел что Great выкладывал модуль для работы с сокетами, но лично я VС++ не знаю и трудновато пока сделать такое задание.
В связи с этим может быть у кого найдется готовый вариант такой программки? Буду очень благодарен. Спасибо.

Sinay
25.12.2008, 12:17
вот что значит сессия началась)))топики сразу обновились...

St0nX
25.12.2008, 13:32
Не знал куда написать, поэтому решил сюда.
Было задано задание:
Написать клиет-сервеное приложение на VC++ с использованием Sockets. Видел что Great выкладывал модуль для работы с сокетами, но лично я VС++ не знаю и трудновато пока сделать такое задание.
В связи с этим может быть у кого найдется готовый вариант такой программки? Буду очень благодарен. Спасибо.
Крис Касперски "Самоучитель игры на WinSock"
в его статье есть примеры клиента и сервера UDP | TCP

ZEXEL
26.12.2008, 03:25
Помогите зделать такое :
Даны два масива A[n] и B[m]. Необходимо создать третий масив, в котором нужно собрать элементы масива В, которые не включаются в A;
Нужно работать с динамическим масивом и указателями.

На C++

St0nX
26.12.2008, 11:46
Помогите зделать такое :
Даны два масива A[n] и B[m]. Необходимо создать третий масив, в котором нужно собрать элементы масива В, которые не включаются в A;
Нужно работать с динамическим масивом и указателями.

На C++
#include <stdio.h>


int *mas(int *B,int *A,int z,int m,int n)
{
int flag = z;
int sc = 0;
int *C;
if(flag >0)
{
C = new int[flag];
z=0;
}
for(int i=0;i<=m-1;i++)
{
for(int j=0;j<=n-1;j++)
{
if(B[i]==A[j])
{
sc++;
}
}
if(sc==0)
{
if(flag == 0)
{
z++;
}
else
{
C[z] = B[i];
z++;
}
}
else
{
sc=0;
}
}
if(flag == 0)
{
return &z;
}
else
{
return C;
}
}


int main(void)
{
int n,m,z;
printf("Input n,m ");
scanf("%d,%d",&n,&m);
int *B = new int[m];
int *A = new int[n];
int *C;
for(int i=0;i<=m-1;i++)
{
printf("Input B[%d]",i);
scanf("%d",&B[i]);
}
for(int i=0;i<=n-1;i++)
{
printf("Input A[%d]",i);
scanf("%d",&A[i]);
}
z = *mas(B,A,0,m,n);
C = mas(B,A,z,m,n);
for(int i=0;i<=z-1;i++)
{
printf("C[%d]= %d\n",i,C[i]);
}
return 0;
}
про delete забыл сам добавиш

ape1ron
28.12.2008, 15:17
Помогите пожалуйста с задачами на MASM32, срочно, о цене договоримся.

ICQ: 358705314

Задачи:
1) Дана последовательность целых чисел a1,a2,.....an. Выяснить, какое число встретитьсятся раньше - положительное или отрицательное.
2) Дана последовательность действительных чисел a1,a2....an. Выяснить, будет ли она возрастающей.
Здесь, как я понимаю идет работа с сопроцессором.
3)В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

Комментарии к задачам: заполнение массива чисел возможно реализовать и на C+. НО сами операции нахождения положит и отриц. в первой лабе, и определение возрастающей последовательности должно быть на языке MASM, в третьей задачи аналогично. Т.е. возможно реализовать лабу на С+ с ассемблерными вставками.

HencH_MaN
29.12.2008, 19:34
Помогите с заданием по С++
Дан вещественный массив длины N. Разработать программу, которая сортирует массив так, что все его положительные числа находятся в начале, все отрицательные в конце, причем сохраняется исходный порядок следования элементов в соответствующих группах.
Как отсортировать по знаку что нужно использовать?

Delimiter
29.12.2008, 19:46
выборолчная шейкер сортировка ...

float A[N];
float temp;
int i,j;
do {
for(i=0,flag=0;i<N-1;i++)
if(A[i]<0 && A[i+1]>0)
{
temp=A[i];
A[i]=A[i+1];
A[i+1]=temp;
flag=1;
}
for(i=N-1;i>1;i--)
if(A[i]>0 && A[i-1]<0)
{
temp=A[i];
A[i]=A[i-1];
A[i-1]=temp;
flag=1;
}
}while(flag==0);

НЕ ПРОВЕРЯЛ бил прямо тут!

St0nX
30.12.2008, 13:39
Delimiter
Так динамический массив определять нельзя, если это был он.
float A[N];
При комп будет что то подобное
error C2133: 'A' : unknown size
так можно сделать если выше.
#define N 100
или уж через new
float* A = new float[N];

HencH_MaN
30.12.2008, 16:51
Помогите пожалуйста!!!На С++
Разработать функцию, которая выбирает из произвольного числа заданных последовательностей чисел последовательность с максимальным средним значением. Показать варианты вызова функции.

Cereus
30.12.2008, 21:42
Помогите с заданием по С++
Дан вещественный массив длины N. Разработать программу, которая сортирует массив так, что все его положительные числа находятся в начале, все отрицательные в конце, причем сохраняется исходный порядок следования элементов в соответствующих группах.
Как отсортировать по знаку что нужно использовать?

Данный способ основан на использовании двух дополнительных матриц - одна хранит положительные значения из входного массива, а вторая отрицательные. При данном способе можно было бы обойтись и без входного массива, но в ТВОЕМ задании сказано... Короче вот:


# include <cstdio>
# include <cstdlib>
# include <iostream>

using namespace std;

int main(){
cout<<"Введите количество элементов в матрице: ";
int n=1; //переменная хранящая количество элементов в марице
cin>>n;
double mas1[n];//главный массив
double masOtr[n];//массив для хранения отрицательных значений
double masPol[n];//массив для хранения положительных значений
int pol=0,otr=0;//переменные для хранения количества положительных и отрицательных элементов
for (int i=0;i<n;i++){//начало цикла заполняющего массивы
cout<<"Вводится элемент №"<<i<<" ";
cin>>mas1[i];//заполняем основной массив
if (mas1[i]<0) {masOtr[otr]=mas1[i];otr++;} else {masPol[pol]=mas1[i];pol++;}; //выбираем положительные и отрицательные числа
}; //конец цикла заполняющего массивы
cout<<"\nСодержание матрицы до изменения\n";
for (int i=0;i<n;i++){
cout<<mas1[i]<<endl; //выводим содержание массива до сортировки
}
otr=0;
for (int i=0;i<n;i++){//начало сортировки массива
if (i<pol) {mas1[i]=masPol[i];} else {mas1[i]=masOtr[otr];otr++;}; //собственно сортировка массива
//отрицательные числа сортируются после всех
}//конец сортировки массива
cout<<"\nСодержание матрицы после фильтрации\n";
for (int i=0;i<n;i++){
cout<<mas1[i]<<endl; //вывод содержания массива после сортировки
}
system ("pause");//пауза для того чтобы посмотреть результат
return 0;
}


P.S.
Обращаюсь к знающим античатовцам: мои познания в C++ весьма скудны и поэтому прошу тех кто знает посмотреть на данный код и оптимизировать его и/или предложить более рациональный способ (мне самому уже интересны варианты решения данной задачи).

WALKMAN
04.01.2009, 23:55
Дорогие античатовцы, я учу С++ и мне задают лабораторки с задачами по задачнику, автор - С. А. Абраамов. Я бы не сказал что я непонимаю в програмировании, но в етих задачах очень трудно понять что от програмиста хотят :-) Так вот ктонибудь сталкивался с етим задачником?
Преподаватель молчит, говорит студент должен сам все находить и учить, вот например такая задача:
"Даны натуральные числа k, m, n, символы s1,...,sk,t1,...,tm, u1...,un. Получить по одному разу те символы, которые входят одновременно во все три последовательности"
И как такое решать ? :-)

criz
05.01.2009, 00:56
WALKMAN, у тебя три массива. Сравниваешь элементы этих массивов между собой, например:

if(s[1] == t[5] && s[1] == u[2])
printf("Bingo!");

;)
з.ы. А препод хороший, правильные вещи говорит :)

_antony
05.01.2009, 01:38
del

WALKMAN
05.01.2009, 13:19
WALKMAN, у тебя три массива. Сравниваешь элементы этих массивов между собой, например:

if(s[1] == t[5] && s[1] == u[2])
printf("Bingo!");

;)
з.ы. А препод хороший, правильные вещи говорит :)
Меня смущает сам вопрос: "получить по одному разу те символы, которые входят одновременно во все три последовательности." Сильно замысловатый, ну при этом я понял что есть три различных по длине символьных массива и требуеться сравнить между собою все их елементы, но что вывести в результате???
"получить по одному разу те символы, которые входят одновременно во все три последовательности." :confused:

jawbreaker
05.01.2009, 13:28
получить по одному разу те символы, которые входят одновременно во все три последовательности.
Пример:
abcdfega
bndada
aba
Символ "a" входит во все 3 последовательности 2 раза, тебе нужно его вывести только один раз.
Код:

#include <iostream>
#include <vector>
#include <list>

using namespace std;

int main()
{
vector<int> s(3);
vector<int> t(4);
vector<int> u(5);

list <int> res;

for (int i = 0; i < s.size(); i++)
for(int j = 0; j < t.size(); j++)
for(int k = 0; k < u.size(); k++)
if(s[i] == t[j] == u[k])
res.push_back(s[i]);

res.unique();

for(list<int>::const_iterator it = res.begin(); it != res.end(); it++)
cout << *it << "\n";
cin.get();
return 0;
}

criz
05.01.2009, 13:39
но что вывести в результате???
Выводишь номер элемента и его значение. Example:

for(i = 1; i < k; i++)
{
for(j = 1; j < m; j++)
{
for(o = 1; o < n; o++)
{
if(s[i] == t[j] && s[i] == u[o])
printf("s[%d] = t[%d] = u[%d] = %d\n", i, j, o, s[i]);
}
}
}

WALKMAN
05.01.2009, 21:08
С заданием справился, правда была проблемма с выводом самого символа:

printf("s[%d] = t[%d] = u[%d] = %d\n", i, j, o, s[i]);

Символ выодился в "циферном" формате. Весь текст программы получился такой:

#include <stdio.h>
#include <string.h>
#include <iostream.h>
int main ()
{
char s[1000], t[1000], u[1000];
int i, j, o;
printf ("Vvedite stroku s: \n");
gets(s);
printf ("Vvedite stroku t: \n");
gets(t);
printf ("Vvedite stroku u: \n");
gets(u);
for(i = 0; i < strlen(s); i++)
{
for(j = 0; j < strlen(t); j++)
{
for(o = 0; o < strlen(u); o++)
{
if(s[i] == t[j] && s[i] == u[o])
{printf("s[%d] = t[%d] = u[%d] =", i, j, o); cout<<s[i]<<endl;}
}
}
}
getch ();
return 0;
}

п. с. А задачи всеравно непонятные ;)

reza4ok
06.01.2009, 17:02
Привет всем, нужна помощ с лабораторной работой по С++... за помощ поставлю +++
Задание:
Дана целочисленная квадратная матрица. Определить:
1. максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы;
2. произведение элементов в тех строках, которые не содержат отрицательных элементов.
Сделать нужно динамическим масивом. Вот коечто пытался сделать:
#include<iostream.h>
#include<iomanip.h>
void main()
{
int a[3][3],i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<"a["<<i<<","<<j<<"]=";
cin>>a[i][j];
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<setw(3)<<a[i][j];
cout<<endl;
}
}
}
Это только ввод и вывод матрицы, а вот как порешать два задание и тем более выделить под это всё память незнаю...

k1113r
06.01.2009, 20:06
Привет всем, нужна помощ по С++ :
Нужен алгоритм, который переводит число из десятичной системы в двоичную и наоборот. Проблема в том, что в двоичном коде надо произвести операции, поэтому типы везде должны быть Integer.

criz
06.01.2009, 20:10
2. произведение элементов в тех строках, которые не содержат отрицательных элементов.
вроде так:

int res = 1;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
if(A[i][j] >= 0)
{
res =res*A[i][j];
str = i;
}
else
break;
}
}

А вот с первым заданием хз...я забыл что такое главная диагональ :) Это та, которая слева направо или наоборот? =)
Если первое, то вот это:

max = A[0][0];
for(i = 0; i < M; i++)
{
for(j = 0; j < M; j++)
{
if(i != j && j>i)
{
res += A[i][j];
max = res;
break;
}
}
}

суммирует(должна :)) элементы диагонали, лежащей сверху главной :)

criz
06.01.2009, 20:17
Привет всем, нужна помощ по С++ :
Нужен алгоритм, который переводит число из десятичной системы в двоичную и наоборот. Проблема в том, что в двоичном коде надо произвести операции, поэтому типы везде должны быть Integer.
click (http://forum.vingrad.ru/forum/topic-195524.html) :)

frostJKE
06.01.2009, 20:59
Помогите пожалуйста решить лабу на С++:
Условие:
Ввести строку с клавиатуры. Проверить является ли она вещественным числом.

criz
06.01.2009, 21:50
frostJKE, http://forum.antichat.ru/showthread.php?p=937000

k1113r
07.01.2009, 12:37
возникла небольшая проблема надо побитово перемножить 2 числа (тоесть в двоичной системе) и перевести обратно

criz
07.01.2009, 13:19
возникла небольшая проблема надо побитово перемножить 2 числа (тоесть в двоичной системе) и перевести обратно
Побитовое умножение это &.
Узнаешь результат
A & B
и переводишь его в десятичное

Nikodashka
07.01.2009, 23:52
Составить блок-схему алгоритма и программу ввода и обработки текста из нескольких предложений согласно заданию. При этом считать, что число предложений и число строк могут не совпадать, каждое слово находится целиком в одной строке, ввод строки завершается нажатием клавиши ENTER, точка – конец предло-жения.Найти слово, которое встречается в каждом предложении. Если таких слов нет, то вывести соответствующее сообщение

criz
08.01.2009, 00:12
2 Nikodashka
Ни тебе "здрасьте", ни тебе "до свидания"
Хотя бы указал(а) какой язык используется.

ankden
08.01.2009, 17:03
помогите плиз на си написать прогу: выбрать идущие подряд тойки упорядоченных цифр по возрастаню.

4p3
08.01.2009, 18:24
Побитовое умножение это &.
Узнаешь результат
A & B
и переводишь его в десятичное
Это битовое И. Никак не умножение.

4p3
08.01.2009, 18:25
помогите плиз на си написать прогу: выбрать идущие подряд тойки упорядоченных цифр по возрастаню.
что за тойки?

ankden
08.01.2009, 18:30
описался извините тройки чисел
те например вводится цыфры 123187456 вывод должен быть 123 456
187 выводиться не должно така как 7>8
Помогите плиз очень надо

4p3
08.01.2009, 18:35
описался извините тройки чисел
те например вводится цыфры 123187456 вывод должен быть 123 456
187 выводиться не должно така как 7>8
Помогите плиз очень надо
Ок, накрапаю от нечего делать

criz
08.01.2009, 18:51
Это битовое И. Никак не умножение.

Побитовые логические операции

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

& побитовое логическое умножение ("и")
| побитовое логическое сложение ("или")
~ побитовое логическое отрицание ("не")
^ побитовое сложение по модулю 2 (исключающее "или")

источник: http://www.intuit.ru/department/se/pbmsu/8/6.html
+
http://www.firststeps.ru/html/js/r.php?3
Это не я придумал ;)

4p3
08.01.2009, 19:00
источник: http://www.intuit.ru/department/se/pbmsu/8/6.html
+
http://www.firststeps.ru/html/js/r.php?3
Это не я придумал ;)
Я доверяю проверенным гуру типо Страуструпа, а не преподавателям с интуита.
Переношу обсуждение в личку.

4p3
08.01.2009, 19:10
возникла небольшая проблема надо побитово перемножить 2 числа (тоесть в двоичной системе) и перевести обратно
язык? формат ввода?

jawbreaker
08.01.2009, 19:18
4p3
Всё правильно он говорит, "И" или конъюнкция или логическое умножение, таблица истинности:
x y x&y
1 1 1
1 0 0
0 1 0
0 0 0
умножением называется потому что результат равен 1 только если оба операнда = 1.
"ИЛИ" или дизъюнкция или логическое сложение, таблица истинности:
x y x|y
1 1 1
1 0 1
0 1 1
0 0 0
я думаю очевидно почему называется сложением =)
Насколько я понял речь идёт о перемножении 2-х чисел в двоичной системе счислений, в этом случае criz не прав потому что перемножать надо так же как и в случае с десятичными числами, только брать результат по модулю 2.
C-шный код для работы с двоичной системой:

Binary arithmatic

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

void b_to_d(char result[]); //binary to decimal
void d_to_b(int dec,char binary[]); // decimal to binary

main()
{
int ch,n1,n2,i=0,j,k,l,carry,r,x1,x2,x;
char bn1[30],bn2[30],result[30],binary[30];
char multi[30][30];
clrscr();
do
{
printf("<1> input first operand \n");
printf("<2> input second operand \n");
printf("<3> binary addition \n");
printf("<4> binary subtraction \n");
printf("<5> binary multiplation \n");
printf("<6> result to decimal \n");
printf("<7> Exit \n\n");
do
{
printf("enter your choice ");
scanf("%d",&ch);
}while(ch>7 || ch<1);
switch (ch)
{
case 1:
printf("\n input first operand ");
scanf("%d",&n1);
x1=n1;
d_to_b(n1,binary);
for(i=0;binary[i]!='\0';++i)
bn1[i]=binary[i];
bn1[i]='\0';
break;
case 2:
printf("\n input second operand ");
scanf("%d",&n2);
x2=n2;
d_to_b(n2,binary);
for(i=0;binary[i]!='\0';++i)
bn2[i]=binary[i];
bn2[i]='\0';
break;
case 3: //addition
for(i=0;i<30;++i) //reset result
result[i]='\0';
carry=0;
if(strlen(bn1)<strlen(bn2))
r=strlen(bn2);
else
r=strlen(bn1);
for(i=0;i<r;++i)
{
result[i+1]='\0';
if(carry==0)
{
if(bn1[i]-48+bn2[i]-48+carry==1)
result[i]=bn1[i]-48+bn2[i]-48+48;
else
result[i]=0+48;
}
else
{
if(bn1[i]-48+bn2[i]-48+carry==2)
result[i]=0+48;
else
result[i]=1+48;
}
if(bn1[i]-48+bn2[i]-48+carry>1)
carry=1;
else
carry=0;
if(carry==1)
result[i+1]=carry+48;
}
printf("\n%s\n",strrev(result));
break;
case 4: //subtraction
for(i=0;i<30;++i) //reset result
result[i]='\0';
carry=0;
if(strlen(bn1)<strlen(bn2))
r=strlen(bn2);
else
r=strlen(bn1);
for(i=0;i<r;++i)
{
result[i+1]='\0';
if(bn1[i]<bn2[i])
carry=2,--bn1[i+1];
else
carry=0;
if(carry+bn1[i]-48-bn2[i]+48==1)
result[i]=1+48;
else
if(carry+bn1[i]-48-bn2[i]+48==0)
result[i]=0+48;
}
printf("\n%s\n",strrev(result));
break;
case 5: //binary multiplication complited on 27-03-2004
for(i=0;i<30;++i) //reset result
result[i]='\0';
strrev(bn2); // reversing second binary operand
k=0,x=0;
for(i=0;i<strlen(bn2);++i) //creating array for addition
if(bn2[i]=='1')
{
for(j=i+1;bn2[j]!='\0';++j)
multi[k][x++]='0';
for(l=0;bn1[l]!='\0';++j,++l)
multi[k][x++]=bn1[l];
for(;x<30;++j)
multi[k][x++]='0';
++k,x=0;
}
l=0;
for(j=0;j<30;++j) //addition of all columns without carry
{
x=0;
for(i=0;i<k;++i)
x+=(multi[i][j]-48);
multi[0][l++]=x;
}
for(i=0;i<30;++i) //loop for including carry.
if(multi[0][i]>1)
multi[0][i+1]+=((multi[0][i]-(multi[0][i]%2))/2);
printf("\n");
for(i=29;i>=0;--i) // excluding first zero's (0's) of array
if(multi[0][i]!=0)
break;
j=0;
for(;i>=0;--i) // final calculations and print
if(multi[0][i]<48)
{
multi[0][i]%=2;
result[j++]=multi[0][i]+48;
// printf("%d",multi[0][i]);
}
printf("\n");
printf("%s\n",result);
break;
case 6: //result in decimal
b_to_d(result);
printf("\n");
break;
}
n1=x1;
d_to_b(n1,binary);
for(i=0;binary[i]!='\0';++i)
bn1[i]=binary[i];
bn1[i]='\0';

n2=x2;
d_to_b(n2,binary);
for(i=0;binary[i]!='\0';++i)
bn2[i]=binary[i];
bn2[i]='\0';

}while(ch!=7);
printf("\n\n i will wait for your mails");
getch();
return 0;
}

void b_to_d(char result[]) //binary to decimal
{
short int i;
long int dec=0;
strrev(result);
for(i=0;i<strlen(result);++i)
dec+=(result[i]-48)*pow(2,i);
printf("result in decimal is %ld\n",dec);
strrev(result);
}

void d_to_b(int dec,char binary[]) // decimal to binary
{
int i=0;
while(dec>0)
{
binary[i++]=dec%2+48;
binary[i]='\0';
dec-=(dec%2);
dec/=2;
}
}

ankden
08.01.2009, 19:44
Ок, накрапаю от нечего делать
Жду,заранее спасибо

4p3
08.01.2009, 20:01
4p3
Всё правильно он говорит, "И" или конъюнкция или логическое умножение, таблица истинности...
...


Совершенно верно. В реквесте было именно арифметическое умножение. Потому & неприменим.

4p3
09.01.2009, 09:08
Жду,заранее спасибо


//---------------------------------------------------------------------------
#include <iostream>
#include <cstdlib>
#include <assert.h>
#pragma hdrstop

namespace
{
using std::cout;
using std::cin;
using std::endl;
using std::system;
};

typedef unsigned int uint;
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
uint nNumb = 0;
int *pnArray = NULL;
cout << "Enter number of digits: ";
cin >> nNumb;

if (nNumb > 2 && nNumb < 30)
pnArray = new int[nNumb];
else
{
cout << "number of digits too smal or too large" << endl;
return 1;
}

assert(pnArray != NULL);

cout << "Enter digits: " << endl;
for (uint i = 0;i < nNumb;++i)
cin >> pnArray[i];

for (uint i = 0;i < nNumb;i++)
{
if (i+2 >= nNumb)
break;

if (pnArray[i] < pnArray[i+1] < pnArray[i+2])
cout << pnArray[i] << pnArray[i+1] << pnArray[i+2]
<< endl;
}

delete []pnArray;
pnArray = NULL;
system("pause");
return 0;
}
//---------------------------------------------------------------------------

ankden
09.01.2009, 11:38
Enter number of digits ввожу 3
Enter digits ввожу 123 435 907
выдает 12435907,а надо было вводить цифры наприсер 123435907
а выдать должно было 123

criz
09.01.2009, 12:39
Enter number of digits ввожу 3
Enter digits ввожу 123 435 907
выдает 12435907,а надо было вводить цифры наприсер 123435907
а выдать должно было 123
Надо вывести первые три(number) числа?

ankden
09.01.2009, 13:15
нет надо выбрать идущие подряд тройки цифр упорядоченных по возрастаню
т.е например вводится цыфры 123187456 вывод должен быть 123 456
187 выводиться не должно така как 7<8
Помогите плиз очень надо

criz
09.01.2009, 15:50
2 ankden:

#include <stdio.h>

int main(int argc, char *argv[])
{
int str[10] = {2,3,3,5,6,7,4,5,6};
int i;
int t = 0;
for(i = 0; i < 10; i++)
{
if((str[i+1] - str[i] == 1))
{
printf("%d", str[i]);
t++;
}
if(((i+1)%3 == 0) && (t == 2))
{
printf("%d", str[i]);
t = 0;
}
}
return 0;
}

так?

ankden
09.01.2009, 16:06
нет программа выдает 25645
задача я с клавиатуру ввожу цыфры вывыеси долно тройки чисел упорядоченных по возрастанию
например 345678098 вывод 345 678
098 выводить не должно тк цыфры идуть не повозрастанию