TWINc

Помощь в решении заданий по программированию.

Рекомендованные сообщения

не хотел убивать на это время...но ладн если никто не может привести пример придётся искать ответ в учебниках... :lol:

аааааа....чума....

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

 

сори мне либо совсем лень чёт искать либо я ничё не могу найти то,что мне нужно... :lol:

Пример класса-открой любой хелп по Делфи например и посмотри там объявления класса. Стандартного хотя бы. А пример файла тебе точно не приведёшь хотя бы потому что его можно представить как угодно. Можно как RuForce в виде хмл. А можно в двоичном виде. Как хочешь так и пишешь.

 

Господа, кто-нибудь сталкивался с созданием интерактивной презентации в PowerPoint с опросом сделанным через VBA?

Трёхчасовое обгугливание интернета не помогло. Если есть мануалы по VBA+PowerPoint дайте ссылку. Либо подскажите чего, да как.

В VBA ниразу не программировал...

У меня есть но она не электронная и в принципе нужная. Называется "VBA и Ms Office 2000". Кода там мало. По большей части описание свойств и методов. Но там не только поверпойнт например.

Изменено пользователем IRQ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пример класса-открой любой хелп по Делфи например и посмотри там объявления класса. Стандартного хотя бы. А пример файла тебе точно не приведёшь хотя бы потому что его можно представить как угодно. Можно как RuForce в виде хмл. А можно в двоичном виде. Как хочешь так и пишешь.

 

блин точняг...хелп...вот я чайник...спс)))пошёл палить в хелпе)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А по поводу библиотеки ведь есть в stdlib функция random вроде. Там же есть функция эта и можно использовать скажем random(1)*a.

 

Нескромный вопрос: random(1) выдает числа от 0 до 1? Тогда уже лучше до 10.

Т.е. я так понял, что надо генерить дробные рандомные числа(типа 0,236; 0,1335; 0,3589; и т.п.), а затем целую часть брать какую захочется в пределах, естественно, разброса. Ну для такого малого разброса можно взять целую часть от 1 до 5 к примеру. Тогда, действительно получаться случ. числа.

 

А далее, в рандоме увеличивать предел, до 30 к примеру и + множитель "а" также приближать к целому(в данном случае к 1), или превысить 1.

 

Идея правильная? :D

 

(блин дома токо Турбо Си стоит поэтому токо на нем и могу проверять))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

<..>

Идея правильная? :)

(блин дома токо Турбо Си стоит поэтому токо на нем и могу проверять))))

 

Проверь в среде Microsoft Visual C++ 2008 Express edition. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
У меня есть но она не электронная и в принципе нужная. Называется "VBA и Ms Office 2000". Кода там мало. По большей части описание свойств и методов. Но там не только поверпойнт например.

Название и автора не подскажешь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

VBA в Office 2000. Учебный курс. А. Васильев А. Андреев. Питер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверь в среде Microsoft Visual C++ 2008 Express edition. :)

 

Сколько место на диске будет занимать после утсановки? У меня достаточно огр. пространство(меньше гига), поэтому особо не закачиваюсь.

 

Есть ли принципиальная разница м/у Visual Studio и Билдером 6?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да в принципие есть. Компиляторы хотя бы разные. да и потом можно писать на Managed C++. Тут вообще .NET которой в 6 билдере в помине нет. Да и в VS работать приятнее как-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, возникла проблема - не устанавливается .NET framework 3.5. при установке возникла ошибка - невозможно уст. Сис. - sp2. сб.2600.

Изменено пользователем Team

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще странно. У меня тоже такая система (русская). Но помойму поставилось. Я точно не помню просто в списке программа только 3.0 но помойму я 3.5 тоже ставил. Хотя в принципе строго говоря я думаю тебе и 2.0 вполне хватит так что можешь забить если не совсем критично :lol: Или 3.0 оставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я чувствую, что мне придется уже качать новый пакет Студио из сети, т.к. в той версии, что я скачал с офиц. сайта МикросафтА, одна позиция из одной - .NET 3.5. Выбора особого нет :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

всем привет!!! у меня такой вопрос. есть ли в delphi 7 функция перевода такой строки $30$2c$30$30$35$31$3b и тд. в ASCII вида 0,0051; и тд. и далее полученную строку надо перевести в числовой формат и сформировать массив чисел, отбросив ";". и еще один вопрос: почкму, если с ком-порта идут числовые значения, то при переводе в аски все нормально получается. а вот если в порт поступает допустим серия микроконтроллера (TEST 1 COM_ и тд.), получается абра-кадабра из $18$5$9$1$d и тд. ???????

помогите пожалуйста разобраться!!!! буду очень признательна))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А кто сказал что серия микроконтроллера будет в текстовом формате? Она наверняка посылается обычными числами. И поэтому нельзя считать получаемые значения как коды символов. И числа как раз маленькие что говорит о том что передаются числа а не символы. Там уже надо переводить их в символы. Например для цифр прибавить 30h и получится код символа этой цифры. А под числовыми значениями я так понимаю имеется ввиду передача символов. Но ведь передаются именно символы а не сами значения. Ведь если передаётся число 2 то это не значит что будет отображена двойка. Будет отображён символ с кодом 2. Это там сердечко вроде или ромбик. А вот если передатся 32h тогда уже будет нарисована двойка. Что касается функции делфи то помойму её нет но что мешает использовать поучение символа по коду и всё это просот в строку склеивать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё-таки утсановил вижал Си++.

вот терь новая проблема, написал небольшой блок проги для отработки ввода строк. На Турбо Си работает нормально, хотя и там пришлось помучаться из-за функции strcat. А в вижал так вообще не раб.

Вот я думаю, а в Билдере пойдет или тоже надо гадать?

 

В проге надо ввести числа, которые счит. как симв. строки, затем это "число" объед. с уже заданной строкой с помощью ф-ции strcat. Но с ней то все проблемы возникают :\\\.

 

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define N 5

void vision(int i, char *A[10])
{

 char zd[]=".txt";
 //char *NN=strcat(*(A+2),zd);
 //printf("\nREZ po VISION->%s\n",NN); // вот так не работает

 for(i=0;i<N;i++)
 {
char *NN=strcat(*(A+i),zd); // char*NN наверно лучше убрать )
printf("\n%s",A[i]);
 }
return;
}

void main()
{ int i;
  for(i=0; i<N; i++)
  {
 char *A[10];
 scanf("%s",&*A[i]);

 if(*A[i]==' ') continue; // ввод либо через ЕНТЕР по "скану", либо сразу всех чисел через пробел(надо еще подумать)
 //vision(i,A[i]); // раньше передавал по символу, но в рамках большой проги(в которую надо это вставить) это не вариант.
 printf("\nNomer TRKT%d\n\n",i);

if(i==N-1)
 {
  printf("MAssIV-->%s,%s,%s",A[3],A[2],A[1]); getch();

  vision(i,A); // передаю весь массив чисел(строк) А в функцию для дальн. обработки.
 }
  }
getch();
clrscr();
}

Изменено пользователем Team

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А кто сказал что серия микроконтроллера будет в текстовом формате? Она наверняка посылается обычными числами. И поэтому нельзя считать получаемые значения как коды символов. И числа как раз маленькие что говорит о том что передаются числа а не символы. Там уже надо переводить их в символы. Например для цифр прибавить 30h и получится код символа этой цифры. А под числовыми значениями я так понимаю имеется ввиду передача символов. Но ведь передаются именно символы а не сами значения. Ведь если передаётся число 2 то это не значит что будет отображена двойка. Будет отображён символ с кодом 2. Это там сердечко вроде или ромбик. А вот если передатся 32h тогда уже будет нарисована двойка. Что касается функции делфи то помойму её нет но что мешает использовать поучение символа по коду и всё это просот в строку склеивать?

 

а почему же он после прибавления 30h выводит что-то опять не то (например 14h)ю он почемуто не отображает это занчение, а просто выводит код ???????

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я не знаю что и как написано, какой код и что делает поэтому не могу ответить. Если он действительно прибавляет и получается неправильно то значит ошибка где-то на входе. Раз на выходе фигня получается. Например не то считываешь. Или какие-то искажения до входа происходят. Ну или на выходе не туда выводится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я не знаю что и как написано, какой код и что делает поэтому не могу ответить. Если он действительно прибавляет и получается неправильно то значит ошибка где-то на входе. Раз на выходе фигня получается. Например не то считываешь. Или какие-то искажения до входа происходят. Ну или на выходе не туда выводится.

извини если задергала, вопрос: а почему в данной процедуре идет перевод чисел как надо (в Ascii)???

 

procedure TForm1.FPortReadPacket(const Packet: Pointer;

const Size: Integer; const ErrCode: Cardinal);

Var S : String; i : Integer;

begin

S:= IntToStr(Size) + '>';

 

For i:= 0 to Size-1 do begin

S:= S + Char(Pointer(LongInt(Packet)+i)^);

End;

 

If ErrCode <> 0 then S:= '[!]' + S;

lbBufRead.Items.Add(S);

end;

 

может быть проблема в том, что я принимаю байт, а не пакет (как в данной процедуре)?????

в программе, с котрой я работаю прием выглядит так:

 

procedure TForm1.OnReadByte(const B : Byte; PortState : TComStat; ErrCode, ModemState : Cardinal);

Var S,ss1 : string; AvaibleBytes : Cardinal; si,size,i:integer; ss:char;

begin

{ Îколичество бит в буфере}

AvaibleBytes:= PortState.cbInQue;

eAvaibleBytes.Text:= IntToStr(AvaibleBytes);

 

S:= eReadBuffer.Text;

S:= S + Format(' %x',);

 

If Length(S) > 40 then Delete(S, 1, 3);

eReadBuffer.Text:= S;

 

end;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

S:= S + Char(Pointer(LongInt(Packet)+i)^);

S:= S + Format(' %x',[B]);

 

Разницу чувствуете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Люди кто может помочь в рисовании картинки в C++ а курсач, а то сам что-то в тупик встал, да и комп пришлось форматнуть =(

Если кто поможет, то не смотрите на координаты, я их потом подправлю. Рисовать надо простейшими функциями типа:

LineTo

Polyline

Arc

PolyBezier / PolyBezierTo

Ractangle / FillRect и проч.

Ellipse

Chord

Pie

RoundRect

Polygon

 

Использовать кисти, перья, регионы, отсечение и проч.

Воть -)

http://keep4u.ru/full/080317/99542e1b1243072c2b/jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос возник. Блин, вот делаю небольш. прогу в Турбо С. Код норм, все работает. Вопрос: почему в Билдере 6 С++ этот код не работает?! Я в ступоре.

 

Причем мне именно нужно сделать в Билдере, но в турбо полез ради получ. быстрого рез-та(Вижал С++ нафиг не понял, снес, дома пока токо Турбо). Но дело даже не в этом, а в том что задачка тормознулась из-за одного такого небольшого момента: не могу нормально записывать символьный массив, элементы которого строки. Запись произвожу через scanfб либо ентером, либо проверкой на пробелы. Вот пример подобного рода кода:

 

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

void main(void)
{   
  int N=0;
  printf("\nVvedite N - ");
  scanf("%d",&N);
  printf("\nVvodite stroki-");

  char *D[20];

	 for(int i=0; i<N; i++)
	  {
		scanf("%s",&*D[i]);
		printf("%s\n",D[i]);
	  }
getch();
clrscr();
}

В Турбо си все работает. В Билдере выдает ошибку при вводе 2-ого элемента массива:

post-49767-1206038779_thumb.jpg

Если задать один элемент, и распечатать его то проблем в Билдере нет. А при обращении к последующим сразу вылетает Access Violetion :lol:

c554d139d8e2.png

56536ae6b4dd.jpg

Изменено пользователем Team

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Team, все правильно билдер говорит, поскольку так вводить массив строк нельзя. У тебя написано: char *D[20] - 20 указателей на char. А память-то где? :) Вот он и обламывается, пытаясь записать строку туда, куда нельзя. Нужно либо тупо:

 

char D[20][255] (20 строк по 255 символов), либо использовать динамическую память (что более правильно, поскольку число строк может меняться в зависимости от ввода пользователя).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Team, все правильно билдер говорит, поскольку так вводить массив строк нельзя. У тебя написано: char *D[20] - 20 указателей на char. А память-то где? :good: Вот он и обламывается, пытаясь записать строку туда, куда нельзя. Нужно либо тупо:

 

char D[20][255] (20 строк по 255 символов), либо использовать динамическую память (что более правильно, поскольку число строк может меняться в зависимости от ввода пользователя).

 

Хм, а если я напишу char D[20], просто массив, а не указатели?

Далее, а почему же тогда в Турбо Си 3.0 это работает? Вот прямо сейчас проверяю, все работает! :rolleyes:

 

 

Кстати, о двумерном массиве я как-то не подумал. У меня идея другая, смотри, мне не нужна последовательность символов. Мне нужна строка, точнее их набор, типа массива А[]={"Один","Вчера", "250"}; . Вот, а двумерный массив D[20][255] дает набор отдельных символов.

 

Лучше я поясню конечную цель. :) Надо в интеракт. режиме ввести число, типа "250", его записать как строку(таких чисел будет до 18-20 штук). Далее эту строку, как элемент массива передать в функцию, как параметр. Далее, в этой фукнции объеденить данную строку с другой, типа: strcat(A,f),

где A=A[j], а f - массив из символов char *f[]=".txt".

Хотя ты прав, да тогда наверно можно запихнуть сюды и двумерный массив, но я боюсь STRCAT будет ругаться).

 

Но я кст, обошел эту проблему несколько другим, кривым немного, путем :) , ввел массив из INT`ов, далее передавал число в ф-цию, там конвертировал его в CHAR с помощью itoa(char*const,char, int)(вроде так пишется).

Но это лишнее "движение", на мой взгляд. )

Изменено пользователем Team

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Team, если D[20] - это нечто 20-символьное будет. Одна строка, по сути. Если нужно 20 строк - нужен двумерный массив.

 

В Турбо-Си это может работать потому, что просто повезло - у программы есть стек и каким-то макаром так оказывается, что все отрабатывает. Но это неверно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если ты напишешь D[20] то будет выделено 20 символов (char) в стеке. И к ним можно будет обращаться. Память под них будет выделеан статически в стеке. А D[20][255] это массив строк потомк что каждый элемент это массив символов. Это и есть строка в понятиях си. И он тоже будет зранится в стеке. И твой вариант с A[] тоже в прицнипе массив символов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Team, если D[20] - это нечто 20-символьное будет. Одна строка, по сути. Если нужно 20 строк - нужен двумерный массив.

 

В Турбо-Си это может работать потому, что просто повезло - у программы есть стек и каким-то макаром так оказывается, что все отрабатывает. Но это неверно.

 

Всё понял! Ты меня озарил! :) ппц, терь понял почему глючило при обращении к n-ому элементу массива "D[20]" :lol: . Блин, вот шо значит не работать в коде годков так 3-4)))

 

а есть ли в Си\Си++ "нормальные" функции работы со строками, которые бы воспринимали бы Строку, как единое целое!, а не как набор символов?

 

П.с. напиши плиз, пример задания динамического массива 20х255. :rolleyes:

 

п.п.с >>IRQ

 

Массив, который я написал - А[]={"Один","Вчера", "250"}; - двумерен?

Изменено пользователем Team

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну если честно не уверен но очень вероятно. Потому что в си есть эта фигня что со строками мудрено. В турбо мне кажется он будет двумерным. Ты ведь объявляешь массив строк но строка это массив. Так что можешь попрообвать обратиться как к двумерному.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Team, массив строк в случае простого C искать здесь: http://www.thescripts.com/forum/thread219594.html - там как раз в одном из постов все понятно описано (динамическая память используется). В чистом C от представления строки как набора символов, завершающегося нулем, никуда не денешься.

 

А вот в C++ попроще, есть обертки - см. классы string и, например, vector. С их помощью можно массив строк организовать не напрягаясь.

 

Ну а дальше - сам ;)

Изменено пользователем GOzzy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

привет все!!!!! в первую очередь хочу поблагодарить всех, кто помагает в решении вопросов!!!!! мой диплом активно продвигается!!! м в этом, я хчу сказать, и ваша огромная заслуга!!!!!!!!!!!!! но вот возник вопрос: не могу нигде найти для делфи 7 перемещение указателя курсора в файле (для паскаля это понятно seek), но вот почему то делфи активно ругается на это!!!! (нужно в файл в конец добавить запись). если есть какие-то идеи, поделитесь пожалуйста)))))

заранее огромное спасибо!!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

<...> не могу нигде найти для делфи 7 перемещение указателя курсора в файле (для паскаля это понятно seek), но вот почему то делфи активно ругается на это!!!! (нужно в файл в конец добавить запись) <...>

 

А как ругается-то?..

По идее, Seek должен работать только в режиме чтения (FileMode := fmOpenRead) и исключительно с "типизированными файлами" (aFilehandle : File of TFileType). Вот.

А если нужно добавить "в конец файла", то используйте Append ( aFileHandle : TFileType).

 

P.S. ReWrite( aFileHandle : TFileType) - файли при открытии перезаписывает путсым.

 

kiss'a , читайте справочную документацию.

 

www.delphibasics.ru

 

(!) Я не ручаюсь за верность своих советов по Objectpascal'ю (Delphi) - давно забросил....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как ругается-то?..

По идее, Seek должен работать только в режиме чтения (FileMode := fmOpenRead) и исключительно с "типизированными файлами" (aFilehandle : File of TFileType). Вот.

А если нужно добавить "в конец файла", то используйте Append ( aFileHandle : TFileType).

 

P.S. ReWrite( aFileHandle : TFileType) - файли при открытии перезаписывает путсым.

 

kiss'a , читайте справочную документацию.

 

www.delphibasics.ru

 

(!) Я не ручаюсь за верность своих советов по Objectpascal'ю (Delphi) - давно забросил....

 

Спасибо огромное))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас