Просмотр полной версии : Очччень нужна помощь в паскале
Princessa_Tanya
11-05-2004, 16:37
Задача:
задан массив из 3-х строк. В каждой строке "фамилия_стаж_зарплата". В каждой строке стаж увеличить на год. Если он станет равным 10, то зарплату увеличить в 2 раза, а если 15 - то в 3 раза.
Я сделала только для одной строки, а как запихать все это в цикл не знаю...
Если не перевелись еще на Руси умные люди, помогите, плиз!!!
Grey Diver
11-05-2004, 16:50
For i:=1 to n do
begin
.....
end;
GreenTe@
11-05-2004, 17:01
ага ага :)
Береш свой двумерный массив раскладываеш в два вложенных цикла(строки и элементы строк) и при работе со вложенным массивом(одномерный массив с номерами элементов строки) проверяеш на условие каждый элемент строки. Если условие подходит запоминаеш номер элемента и в элемент с таким же номером но с другим номером строки записываешь новое значение. Все готово. :)
GreenTe@
11-05-2004, 17:57
Или другими словами :)
Begin
For j:=1 to n (кол-во строк) do
begin
(тут пишешь свой текст, который для строки)
end
и все... усе гениальное просто...
Носки В Полоску
12-05-2004, 17:22
Гы)))) НАРОД!!! ПОМГИТЕ НАПИСАТЬ ПРАГРАММУ "HELLO WORLD!!!"... :D :D :D
LaGrange
12-05-2004, 17:34
Гы, сынок, лол (c).
Пальцы все кидать умеют, а вот работающий код еще никто не предложил.
:D
Карла Маркса
12-05-2004, 17:53
Пускай сначала для одной строки выложит :).
Носки В Полоску
12-05-2004, 18:05
for i:=1 to 3 begin
a[i,2] := a[i,2] + 1;
if (a[i,2]>=10 and a[i,2]<15) begin
a[i,3] := a[i,3]*2;
{Другие интересные операторы}
end;
if (a[i,2]>=15) begin
a[i,3] := a[i,3]*3;
{Другие интересные операторы}
end;
end;
где a - ентот массив, i - integer,
GreenTe@
12-05-2004, 18:25
не мля так не покатит! цифекри нана менять чеб нормальный массив был - двухмерный, мож больше понадобиться строк... (это по научному тыпа)
Карла Маркса
12-05-2004, 18:36
Задача:
задан массив из 3-х строк. В каждой строке "фамилия_стаж_зарплата". :)
Носки В Полоску
12-05-2004, 18:57
2GT: Цифири в начале цикла поменяй, и буит тебе нужно количество итераций...
2КМ: Шо ви ентим хотели сказать???
Носки В Полоску
12-05-2004, 19:03
for i:=1 to 3 begin // кол-во строк задается тут
a[i,2] := a[i,2] + 1; // увеличиваем на 1 стаж (исходя из задания)
if (a[i,2]>=10 and a[i,2]<15) begin // еси стаж больше или равен 10 но меньше 15 умножаем оклад на 2
a[i,3] := a[i,3]*2;
{Другие интересные операторы}
end;
if (a[i,2]>=15) begin // если стаж больше или равен 15 то умножаем оклад на 3
a[i,3] := a[i,3]*3;
{Другие интересные операторы}
end;
end;
Массив вида:
ФИО1 | стаж1 | оклад1
------------------------------
ФИО2 | стаж2 | оклад2
------------------------------
ФИО3 | стаж3 | оклад3
шо вам тут не нравится???
GreenTe@
12-05-2004, 19:04
Браза, не первый год этой мутью занимамся знам че по чем... :)
P I L 0 T
12-05-2004, 19:19
вар надо написать, а то не разберется же ребенок :)
const
n=3;
m=3;
var
i:integer;
a:array[n,m] of real;{вроде так массив прописывается}
Носки В Полоску
12-05-2004, 19:21
процитирую : "Пальцы все кидать умеют, а вот работающий код еще никто не предложил. "
Так шта распальцовка ни к чему... да и задание слегка некорректно поставлено... хотя... ну да ладно, мое дело предложить вариант решения... мож и ошибки есть, но паскалем я года два не занимаюся вообще, так шта к синтаксису не привязывайтесь... в опчим вот так...
printf "Hello world";))
Носки В Полоску
12-05-2004, 19:24
не, real, тут не покатит, у нас же первый столбец строковый(Фио)))
GreenTe@
12-05-2004, 19:29
там вообщето так должно быть
a:array [1..10,1..10] of real
помоему если писать буквы виснет
Носки В Полоску
12-05-2004, 20:07
ага праильно.
теоретически он должен выкинуть что то типа "несоответствие типов"...
GreenTe@
12-05-2004, 20:26
Тоже давно дело было :) последнее время Delphi все, но его со временем забывашь :) :(
LaGrange
12-05-2004, 20:38
Princessa_Tanya
с тебя пиво, смотри какие дебаты развернулись после моего поста ;)
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
importlib("actimp.tlb");
importlib("actexp.tlb");
#include "pshlo.idl"
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
importheader(<windows.h>);
importheader(<ole2.h>);
importheader(<except.hxx>);
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");
[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};
#include "ipfix.hxx"
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
~CHello();
HRESULT __stdcall PrintSz(LPWSTR pwszString);
private:
static int cObjRef;
};
#include <windows.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws\n", pwszString);
return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);
return;
}
#include <windows.h>
#include <ole2.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
HANDLE hEvent;
int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);
WaitForSingleObject(hEvent, INFINITE);
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();
CoUninitialize();
return(0); }
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include <windows.h>
#include <ole2.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"
int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");
printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
if(SUCCEEDED(hRslt)) {
pHello->PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);
CoUninitialize();
}
return(0);
}
Носки В Полоску
12-05-2004, 20:43
Енто праильно))) Код не рабочий - демо версия)))) Полная версия только после отпаивания пивом))) Паскаль - фикня) Чес слово сидел ща и фспоминал, шо когда то я и на нем писал... щас все больше Си, Жаба да Перл...
Носки В Полоску
12-05-2004, 20:45
2 Lofty: енто шо???)))
LaGrange
12-05-2004, 20:56
фигасе ты монстр, я только на Си могу более менее писать, на перле - только маленькие скрипты или шаблонные проги..
тебе не впадлу было сидеть, вспоминать? Танюша пивом вряд ли угостит ))) Уж лучше б погулял, полезнее для здоровья ;)
Носки В Полоску
12-05-2004, 21:41
Вспоминать не в падлу) Хотя было бы лениво еси бы не одно НО! Када наткнулся на сабж вдруг понял что паскаль я знаю, но не помню!!! И с понтом дела все таки попробовал че то вспомнить... руки сами тянулись вместо begin ... end; поставить {...}... так шта не жалко, хоть что то вспомнил из студентческой молодости...
P I L 0 T
12-05-2004, 22:00
Ес не реал, через интегер, тогда нужна все переменные округлять до целых(не помню как - давно было...)
LaGrange
12-05-2004, 22:05
а я-то думал что ты студент.
енто HELLO WORLD на c(pp)
Anonymous
13-05-2004, 00:50
чёт много очень... :rolleyes:
Носки В Полоску
13-05-2004, 01:11
да я уж понял... где то я видел это... хм...
вот ресурсик нашел недавно) интересная весчь - примеры программы Hello World (Hallo Welt - нем.) на разных языках:
http://www.madeasy.de/7/hallowelt.htm (правда все на немецком)
А вот полный текст статьи, которую цитировали выше:
Средняя школа:
Первый курс в колледже
Не первый год в колледже
Молодой специалист
Профессионал
Специалист высокого уровня
Начинающий хакер
Продвинутый хакер
Опытный хакер
Хакер Гуру!
Программист AXE System
Программист сверхвысокого уровня
Менеджер нижнего звена
Менеджер среднего звена
Старший менеджер
Шеф
М-да, народ, вижу вам тут делать нечего. Ну раз так, может кто подумает как изменить заголовки сервера, которые он прицепляет к css файлам, не залазия ессно в настройки сервера.
Обычным хидером из основного скрипта не канает, сразу говорю.
Носки В Полоску
13-05-2004, 19:37
RTFM мой друг, RTFM :D
На какой странице RTFM описаны действия в этой конкретной ситуации ?
Нет не RTFM. Короче, ларчик просто открывался(особенно после бутылочки пива :) ): заставить сервер обрабатывать css-файл как скрипт(см. RTFM) и писать в него какие угодно заголовки(см. RTFM)
Носки В Полоску
14-05-2004, 10:38
Хе))) А после десяти-пятнадцати бутылочек пыва можно и стихи на ассемблере писать)))
Кстати, ты ж писАл что "не залазия в настройки сервера"... как же ты посе ентого заставишь сервер обрабатывать *.CSS как скрипт??? На Win платформе???
Есть как минимум три способа, но в третьем я не уверен:
1)самый простой: изменить расширение css на расширение скрипта
2)mod_rewrite - это вариация на тему первого способа
3)не уверен-не пробовал. Прописать в .htaccess новый add type
Как видиш от платформы здесь мало что зависит, и в настройки лезть не надо.
Princessa_Tanya
14-05-2004, 11:51
Пасиба бальшая всем, кто ответил мене!!!! Я сама допендрила, как сделать эту задачу!!!!!
Ты эта.. заходи, если что :)
Носки В Полоску
14-05-2004, 12:25
1. Странноватый способ, в некоторых конфигурациях недееспособен...
2. Более жизнеспособный вариант
3. А еси htaccess запрещен? Частенько такое бывает.
А от платформы многое зависит... например исполняемый аттрибут в юнихе - весчь хорошая... в виндах такого нету, а значит некоторые варианты сами собой отпадают...
Princessa_Tanya
14-05-2004, 13:09
Ребя!!!!! У меня новая проблема. У меня в чатах смайлики НЕ ШЕВЕЛЯТСЯ. Я в ЯРОСТИ! В настройках експлоера в мультимедии стоит галочка воспроизводить анимацию. Больше не знаю че делать. Очень нужна HELP!!!
Princessa_Tanya
14-05-2004, 13:12
Скажите, плиз, как под ником вставить малюсенькую такую картиночку
<--- вот тама, слева
заранее, пасиба.
Я у себя эту проблему решил и тем счастлив. Вот когда начнутся "некоторые конфигурации" и "если", там и будем посмотреть. А пока все прелестно работает и на локалке под win и у хостера под unix. На этом вопрос для себя считаю закрытым
Носки В Полоску
15-05-2004, 19:39
Статус мембера и топаешь в настройки->Настройки->Изменить аватар
2Golf: Ну когда все работает - енто замещательно) Но исходя из собственного опыта первый предложенный тобой вариант работает в некоторых случаях некорректно...
Princessa_Tanya
18-05-2004, 16:28
Как написать задачу, которая проверяет является ли данное слово палиндромом? Проверку на паландромность записать в виде процедуры.
P.S. палиндром - это слово, которое читается справа налево одинаково. Заранее спасибо...
Princessa_Tanya
18-05-2004, 16:31
[QUOTE]Послано Носки В Полоску
[B]Статус мембера
А как получить статус мембера? Надо определенное количество посещений или как?
Если ты говоришь о Паскале, то я не знаю название функции разбивающее строку на буквы и записывающее их в массив. Название должно быть похоже на WORDWRAP, поищи. Можно и свою написать, используя функции выполняющие другие действия. Короче, получаеш массив из букв и из элементов этого массива составляешь слово в начале в цикле от 1(или 0) до длины массива, затем наоборот от длины массива до 1(или 0), сравниваешь получившиеся слова.
GreenTe@
18-05-2004, 17:54
Блин пусть сначало пиво ставит! потом думать буим!
А у меня даже кошелек ВебМоней есть, еси што :rolleyes: :)
Носки В Полоску
19-05-2004, 01:51
[QUOTE]Послано Princessa_Tanya
[B]Количество сообщений влияет на статус...
Насчет задачки - элементарщина... подскажу что строка - енто одномерный массив. [0] элемент - длина... с помощью цикла забубениваешь и усе... енто задачка на уровне 5-го класса сельской школы...
И еще: пара бы уже пиво ставить за консультации... тада уж мы и чем нить дельным помочь можем)))
2Гольф: а у миня сумка есть... типа "avoska hozyajstvennaya"... гораздо более практичный девайс для транспортировки пива)
Носки В Полоску
19-05-2004, 02:05
млин читаю и плачу... ты б еще taint-mode присобачить к задаче умудрился)))
Не понимаю иронии, ну написал ты
for i:=1 to length(s) do tmp:=tmp+s[length(s)+1-i];
вместо
for i:=length(s) to 1 do tmp:=tmp+s[i];
Что это изменило ?
Вобщем ты прав может в том, что к элементам строки в Паскале можно обращаться напрямую как к элементам массива, есть там кажись такая штука, не помню
Носки В Полоску
19-05-2004, 02:29
вариант работающий на ранних версиях паскаля...
касательно твоего... то не for i:=length(s) to 1 do tmp:=tmp+s[i]; а for i:=length(s) DOWNTO 1 do tmp:=tmp+s[i]; но весь трабл в том что ентот downto в некоторых версиях поддерживается криво.. либо не поддерживается ваапще... так шта чтоб не вазникло нарекания с интерпретатора/компилятора луче все таки написать по моему...
Ну как видишь Паскаль не свежий у меня в памяти, поэтому и пишу словами, по любому челу знающему синтаксис не составит труда обратить их в код :rolleyes:
Носки В Полоску
19-05-2004, 06:44
Ну в принципе и так усе должно быть понятно... А пиво все таки ставить и за такие безделушки надо)))
Princessa_Tanya
01-06-2004, 16:43
Блина, ну я даже не знала, что в мире столько желающих мне помочь!
p.s. А скока нада сообщений, чтобы стать мембером?