Бумер Опубликовано 23 декабря, 2006 Жалоба Поделиться Опубликовано 23 декабря, 2006 №3 раз число целое, то переменная, где оно будет храниться будет типа Comp нам надо посчитать сумму и кол-во цифр Пусть а - заданное число, тогда создадим массив b из 100 элементов типа byte, в котором будем хранить цифры числа. Итак: readln(A); i:=1;while (a mod 10)<>0 dobeginb[i]:=(a mod 10); a:=(a div 10); i:=i+1;end;b[i]:=a;{Теперь переменная i хранит количество цифр в числе}for j:=i downto 1 dobeginwhile (s<>summa) and (b[j]<9) dobeginb[j]:=b[j]+1;for k:=1 to i do s:=s+b[k];if s=summa then break;end;end;if s=summa then beginfor k:=1 to i do write (b[k]);end else writeln (' Числа с таким кол-вом цифр и такой суммой цифр нет');end. Кстати, эта прога проверяет только "вперед", т.е. только большие чилса - но у тебя и по условию "следующее" по-моему это и означает. Насчет меньших думаю и сам теперь составишь. Можно вопросик: А где это такие задачи задают, в каком универе , на какой спец. ? А то у нас задачки пока идут как для лохов. насчет trunc я тебе в личку написал Ссылка на комментарий Поделиться на другие сайты Поделиться
Dion Опубликовано 23 декабря, 2006 Жалоба Поделиться Опубликовано 23 декабря, 2006 Visual Basic 6 здравствуйте народ =) помогите мне плз. как можно сделать так, чтобы брался фай из папки с прогой и копировался в заданную папку, файла должно быть 2 разных. буду очень признателен Ссылка на комментарий Поделиться на другие сайты Поделиться
друг Опубликовано 25 декабря, 2006 Жалоба Поделиться Опубликовано 25 декабря, 2006 Нужна программа на трупо паскале для перевода из 2, 8 ,10 систем счисления в шеснадцати ричную, т.е пишешь 10, он выводит 2 и т.д. Срочно. Ссылка на комментарий Поделиться на другие сайты Поделиться
rapid1985 Опубликовано 15 января, 2007 Жалоба Поделиться Опубликовано 15 января, 2007 Привет всем! прошу хелп кто может - в институте начали изучение пролога после СИ воопсче ниче не понятно - не то чтобы совсем но трудности есть - в конце месяца курсовой млин... задали задачку до конца недели - кто знает помогите плиз и если не трудно с обьяснениями. Загадка Эйнштейна Как утверждал Эйнштейн, 98% людей разгадать её не могут. Но это было в далеком 20 веке... Итак... 5 разных человек живут в пяти разных домах разного цвета, курят 5 разных марок сигарет, выращивают 5 разных видов животных, пьют 5 разных видов напитков. 1. Норвежец живет в первом доме. 2. Англичанин живет в красном доме. 3. Зеленый дом находится левее белого. 4. Датчанин пьёт чай. 5. Тот, кто курит Rothmans, живет рядом с тем, кто выращивает кошек. 6. Тот, кто живет в желтом доме, курит Dunhill. 7. Немец курит Marlboro. 8. Тот, кто живет в центре, пьёт молоко. 9. Сосед того, кто курит Rothmans, пьёт воду. 10. Тот, кто курит Pall Mall, выращивает птиц. 11. Швед выращивает собак. 12. Норвежец живет рядом с синим домом. 13. Тот, кто выращивает лошадей, живет в синем доме. 14. Тот, кто курит Philip Morris, пьёт пиво. 15. В зеленом доме пьют кофе. Вопрос: Кто выращивает рыбок? Ссылка на комментарий Поделиться на другие сайты Поделиться
neic Опубликовано 15 января, 2007 Жалоба Поделиться Опубликовано 15 января, 2007 Visual Basic 6здравствуйте народ =) помогите мне плз. как можно сделать так, чтобы брался фай из папки с прогой и копировался в заданную папку, файла должно быть 2 разных. буду очень признателен FileCopy "Путь к фала откуда будет копировать", "Путь куда будет копировать файл" Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 25 января, 2007 Жалоба Поделиться Опубликовано 25 января, 2007 rapid1985: Вопрос: Кто выращивает рыбок? Немец. Жаль, что только сегодня зашёл сюда. Люблю подобные головоломки. Решил за пол-часа, но, очевидно, что объяснять уже поздно. Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 25 января, 2007 Жалоба Поделиться Опубликовано 25 января, 2007 Skif: объяснять уже поздно Почему? думаю многим интересно узнать как это решать ;) (мне лично интересно :D ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 26 января, 2007 Жалоба Поделиться Опубликовано 26 января, 2007 CreatoR: Почему? думаю многим интересно узнать как это решать (мне лично интересно ) Неужели неинтересно докопаться самостоятельно? :D Я пошёл следующим путём: 1. Нарисовал пять длинных колонок (домов) и определил очерёдность цветов: Жёлтый, Синий, Красный, Зелёный, Белый. 2. Вписал прямые подсказки: Жёлтый - Норвежец - Dunhill, Синий - Лошади, Красный - Англичанин - Молоко, Зелёный - Кофе. 3. Подвёл черту под "верняком". 4. Отталкиваясь от остальных условий, вписал в колонки возможные "атрибуты" (одну связку, например <Pall Mall - птицы>, в две-три колонки). 5. Методом исключения повычёккивал неприемлемые связки. Результат: 1.Жёлтый - Норвежец - Dunhill - Кошки - Вода 2.Синий - Датчанин - Rothmans - Лошади - Чай 3.Красный - Англичанин - Pall Mall - Птицы - Молоко 4.Зелёный - Немец - Marlboro - Рыбки - Кофе 5.Белый - Швед - Philip Morris - Собаки - Пиво Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 26 января, 2007 Жалоба Поделиться Опубликовано 26 января, 2007 Программеры, я ведь чего в ваш топик зашёл - нужна маленькая прога. НО! Напрягать никого не хочу. Просто подскажите язык попроще, освоив азы которого, я мог бы сварганить такую программульку: Небольшое окно. Поле ввода цифр (как вариант набор клавиш, подобных калькуляторским), "ввод", "сброс". Вводимые цифры распределяются по нескольким колонкам, согласно заданным условиям. Возможно, есть подходящий конструктор, подобный разным "сайтостроителям"? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 26 января, 2007 Жалоба Поделиться Опубликовано 26 января, 2007 В Delphi легко сделаеш :) Ссылка на комментарий Поделиться на другие сайты Поделиться
neic Опубликовано 26 января, 2007 Жалоба Поделиться Опубликовано 26 января, 2007 Ещё VB.NET не очень уж такуж сложный, на крайняк VB6 и Delphi Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 27 января, 2007 Жалоба Поделиться Опубликовано 27 января, 2007 Спасибо, поищу самоучитель. Ссылка на комментарий Поделиться на другие сайты Поделиться
ts@ndr Опубликовано 31 января, 2007 Жалоба Поделиться Опубликовано 31 января, 2007 Люди, выручайте!!! Нужна следующая задачка на Паскале: Осуществить логический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости отведенного режима). n может быть больше количества элементов в строке или столбце. В просторах сети на шел следующее uses crt;var a:array[1..100,1..100] of real;n,m,i,j,c,zdvig,z,zd:integer;beginclrscr;writeln('Vvedite kolichestvo stolbcov');readln(n);writeln('Vvedite kolichestvo strok');readln(m);writeln('Vvedite matricu');for i:=1 to n doBegin for j:=1 to m do Begin readln(a[i,j]); end;end;writeln('Vvedite na skolko edinic nugno sdelat sdvig');readln(zdvig);writeln('Esli nugno sdelat sdvig vpravo vvedite 1, esli vniz vvedite 0');readln©;if c=1 then for i:= 1 to n do for j:=1 to m do begin z:=zdvig mod n; zd:=z+i; a[zd mod n,j]:=a[i,j]; end else begin z:=zdvig mod m; zd:=z+j; a[i,zd mod m]:=a[i,j]; end; for i:=1 to n do begin for j:=1 to m do begin writeln(a[i,j]); end; end;readln;end. Вроде должна подходить по условиям на 99,9%, но вот результат какой-то не такой выдает (а мож я и ошибаюсь) Подправте кто может. Очень надо!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 1 февраля, 2007 Жалоба Поделиться Опубликовано 1 февраля, 2007 (изменено) ts@ndr: Чем искать ошибки, проще сделать самому. uses crt;var a:array[1..100,1..100] of real;n,m,i,j,k,l,r,d:integer;beginclrscr;write('Kolichestvo strok: '); readln(n);write('Kolichestvo stolbcov: '); readln(m);writeln('Vvedite matricu');for i:=1 to n do for j:=1 to m doBegin Write('Element A[',i:2,',',j:2,']=');readln(a[i,j]) end;for i:=1 to n do beginfor j:=1 to m do Write(a[i,j]:6:1); writeln end;r:=0; d:=0; write('Velichina sdviga: '); readln(k);write('Napravlenie sdviga (0 - vniz, <>0 - vpravo: '); readln(l);if l=0 then d:=k else r:=k; if r<>0 then for i:= 1 to n dofor j:=m downto 1 do if j>r then a[i,j]:=a[i,j-r] else a[i,j]:=0;if d<>0 then for j:= 1 to m dofor i:=n downto 1 do if i>d then a[i,j]:=a[i-d,j] else a[i,j]:=0;for i:=1 to n do beginfor j:=1 to m do Write(a[i,j]:6:1);writeln end;readln;end. Для проверки проще всего вводить матрицу 3х3 с числами 1...9 Изменено 1 февраля, 2007 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
kennia Опубликовано 1 февраля, 2007 Жалоба Поделиться Опубликовано 1 февраля, 2007 помогите с задачам плиз.... 1)не разрешается использование строк и массивов, а также функций преобразования строки в число и обратно. Дано натуральное число N. Заменить любую из его цифр (только одну) так, чтобы получилось число, максимально близкое к некоторой степени двойки. Операция сдвига влево – N shl(3 количество позиций влево, то есть * на 8 в двоичной системе координат) (можно использовать толькло Циклические алгоритмы.) 2)Написать функцию, вычисляющую количество делителей заданного натурального числа. Использовать ее в составлении программы, которая среди вводимых пользователем натуральных чисел находит последнее из чисел, имеющих максимальное количество делителей. (нельзя масивы и строки,можно Циклические алгоритмы и функций) Ссылка на комментарий Поделиться на другие сайты Поделиться
РОМАШКА Опубликовано 11 февраля, 2007 Жалоба Поделиться Опубликовано 11 февраля, 2007 Не могу получить зачёт по програмированию =( Нужно написать две программы в Паскале. Вот условия 1)Тема: Работа с текстовыми файлами Условие: Вывести количество отрицательных чисел из данного файла 2)Тема: Тип данных - запись Условие: Написать программу, которая выводит сведения об учителях школы, у которых нет домашнего телефона. Данные об учителях оформить ввиде записи: фамилия, имя, отчество, адрес, телефон (у кого он есть) Ссылка на комментарий Поделиться на другие сайты Поделиться
Stolik Опубликовано 11 февраля, 2007 Жалоба Поделиться Опубликовано 11 февраля, 2007 РОМАШКА ---------------------------- Program Count_in_file; uses Crt; const path = 'f:/file.txt'; var f : file of integer; i,j : integer; begin {Count_in_file} ClrScr; writeln('Запись чисел в файл'); writeln; assign(f, path); rewrite(f); i:= 0; j:= 0; repeat window(1, 2, 80, 25); Clrscr; writeln('Введите число'); read(i); write(f, i); writeln('Для выхода из режима записи чисел в файл нажмите Ecs'); writeln; until readkey = #27; reset(f); writeln('Содержимое файла'); while not EOF(f) do begin read(f, i); write(i, ' '); if i < 0 then inc(j); end; writeln; writeln; writeln('Отрицательных элементов - ', j); readln; readln; close(f); end. {Count_in_file} ------------------------------------ ==================== ------------------------------------ Program Teacher_Search; {---------------------} uses Crt; {---------------------} type teacher = record i, f, o : string[15]; address : string[20]; number : longint; end; {teacher} {---------------------} const path = 'f:/file.txt'; {---------------------} var work, find, result, tmp : teacher; f : file of teacher; err, j : byte; i : longint; {---------------------} begin {search} {$I-} j:= 0; assign(f, path); while true do begin ClrScr; writeln('What do you want do do?'); writeln('1 - enter new data or 2 - search data in existing file or 3 - exit'); writeln('(press 1, 2 or 3)'); case ReadKey of '1': begin rewrite(f); repeat ClrScr; repeat writeln('Imya: '); readln(work.i); writeln('Are you sure? Yes - Enter'); until ReadKey = #13; repeat writeln('Familia: '); readln(work.f); err:= IOResult; writeln('Are you sure? Yes - Enter') until (ReadKey = #13) and (err = 0); repeat writeln('Otchestvo: '); readln(work.o); err:= IOResult; writeln('Are you sure? Yes - Enter') until (ReadKey = #13) and (err = 0); repeat writeln('Address: '); readln(work.address); err:= IOResult; writeln('Are you sure? Yes - Enter') until (ReadKey = #13) and (err = 0); repeat writeln('Telefon: (0 - esli net telefona) '); readln(work.number); err:= IOResult; writeln('Are you sure? Yes - Enter') until (ReadKey = #13) and (err = 0); write(f, work); writeln('Do you want to continue? No - Esc') until ReadKey = #27; close(f); end; {case 1} '2': begin reset(f); writeln('Net domashnih telefonov:'); while not EOF(f) do begin read(f, tmp); if tmp.number = 0 then begin with tmp do begin writeln; writeln(i); writeln(f); writeln(o); writeln(address); writeln; end; end; end; {while} writeln('Press Enter'); readln; close(f); end; {case 2} '3': halt; {case 3} end; {case readkey of...} end; {while} {$I+} end. {search} ------------------------------ Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 19 февраля, 2007 Жалоба Поделиться Опубликовано 19 февраля, 2007 (изменено) Зарылся в учебнике по Делфи, но нигде не нахожу простенького обработчика событий. Надо, чтобы после нажатия кнопки с цифрой, она отображалась в нескольких таблицах. За каждой кнопкой-цифрой закреплён свой столбик в каждой из таблиц. Например, после нажатия "1", единица появляется в первом столбце первой таблицы и третьем столбце второй таблицы. Каждая вводимая цифра занимает следующую нижнюю ячейку в таблице (а не в колонке! Все числа должны идти последовательно в таблице, а не забивать все ячейки). В качестве таблиц взял StringGrid (Additional). К сожалению, ничего лучшего на панели не нашёл (у меня BorlandDelphiPersonalEdition). Подскажите, пожалуйста, кто знает. Изменено 19 февраля, 2007 пользователем Skif Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 19 февраля, 2007 Автор Жалоба Поделиться Опубликовано 19 февраля, 2007 Skif Обрабатывать события нужно там, где они происходят, или передавать родителям. Где должен быть фокус ввода, чтобы нажатия клавиш обрабатывались указанным тобой образом? У той компоненты и надо ставить обработчик. Ссылка на комментарий Поделиться на другие сайты Поделиться
Skif Опубликовано 20 февраля, 2007 Жалоба Поделиться Опубликовано 20 февраля, 2007 Shurr: Где должен быть фокус ввода, чтобы нажатия клавиш обрабатывались указанным тобой образом? Я не буду привязывать компоненты к клавиатуре. Каждая кнопка отвечает за группу однотипных показателей, потому кнопок не так уж и много. Клик левой клавишей мыши по кнопке -> одна отметка в каждой таблице. У той компоненты и надо ставить обработчик. Цитата из учебника: Delphi лишь создала заготовку для процедуры, но она ничего “не знает” о том, для чего эта процедура предназначена. Наполнить тело нужными предложениями -задача программиста Вот с этим "предложением" между begin и end; у меня и сложность. Все компоненты в форме я расположил. Но ведь визуальным способом фрагмент программы, связывающий кнопку с группой колонок, не создашь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 26 февраля, 2007 Жалоба Поделиться Опубликовано 26 февраля, 2007 Помогите, пожалуйста, дописать курсовую. Программа - транспортная задача. Вроде бы начал делать, но не врубаюсь что дальше... проблема в том, что в принципе я могу сам сделать, но сейчас нет времени. Параллельно раскидываю хвосты, и пишу дипломку. пожалуйста, помогите решить проблему. Желательно до среды. Описание мат. решения и само задание в аттаче. Вот код: Program Transport_911;Uses CRT;label L1;Varmax:integer;cc:array[1..6,1..6] of integer;ai,bj:array[1..6] of integer;cij:array[1..6,1..6] of integer;a,b:array[1..5] of integer;c,r:array[1..5,1..5] of integer;x,y,z,i,j,ij,x1,y1,k,q,w:integer;{***********************************}Procedure BP(ki,li,k,l,kk:integer);BeginIf ki<x1 thenFor j:=li to x1 doIf c[ki,j]<>0 thenBeginFor i:=ki to y1 doIf c[i,j]<>0 thenEnd;End;{***********************************}BeginClrScr;{writeln('vvedite kolichestvo zapasov');readln(x1);writeln('vvedite kolichestvo potrebnostey');readln(y1);writeln('vvedite zapaci gruza');for i:=1 to x1 doreadln(a[i]);writeln;writeln('vvedite potrebnosti');for j:=1 to y1 doreadln(b[j]); }x1:=3;y1:=5;b[1]:=90;b[2]:=160;b[3]:=70;b[4]:=80;b[5]:=100;a[1]:=150;a[2]:=200;a[3]:=150;For j:=1 to y1 doWrite(b[j]:5);Writeln;Writeln;Writeln('____Table 1____');Writeln;For i:=1 to x1 do beginFor j:=1 to y1 do beginIf (a[i]=0) or (b[j]=0) then begin c[i,j]:=0;Goto L1;End;If a[i]>b[j] then beginc[i,j]:=b[j];a[i]:=a[i]-b[j];b[j]:=0;End;If a[i]=b[j] then beginc[i,j]:=a[i];a[i]:=0;b[j]:=0;End;If a[i]<b[j] then beginc[i,j]:=a[i];b[j]:=b[j]-a[i];a[i]:=0;End;L1:write(c[i,j]:5);End;Writeln;End;Writeln;{***********************************}{writeln('vvedite tarify perevozok cherez probel');for i:=2 to x1+1 do beginfor j:=2 to y1+1 do begincij[1,1]:=0;end;end;writeln;{for i:=1 to x1 do beginfor j:=1 to y1 do beginread(cij[i,j]);end;end;}cij[1,1]:=8; cij[1,2]:=20; cij[1,3]:=7; cij[1,4]:=11; cij[1,5]:=16;cij[2,1]:=4; cij[2,2]:=14; cij[2,3]:=12; cij[2,4]:=15; cij[2,5]:=17;cij[3,1]:=15; cij[3,2]:=22; cij[3,3]:=11; cij[3,4]:=12; cij[3,5]:=19;Writeln;Writeln('____Tarify perevozok____');Writeln;For i:=1 to x1 do beginFor j:=1 to y1 do beginWrite(cij[i,j]:5);End;Writeln;End;{***********************************}ai[1]:=0;For i:=1 to x1 doBeginFor j:=1 to y1 doIf c[i,j]<>0 thenBeginbj[j]:=cij[i,j]+ai[i];For k:=i+1 to x1 doIf c[k,j]<>0 then ai[k]:=bj[j]-cij[k,j];End; {for q:=j to y1+1 do if c[i-1,j-1]<>0 then bj[j]:=cij[i,j]+ai[i]; for w:=i to x1+1 do if c[i-1,j-1]<>0 then ai[i]:=bj[j]-cij[i,j];}End;Writeln;{***********************************}Writeln('____Table output Bj and Ai____');Writeln;For i:=1 to y1 doWrite(bj[i]:5);Writeln;For i:=1 to x1 doWriteln(ai[i]);{***********************************}Writeln;Writeln('Table output');Writeln;For i:=1 to x1 do beginFor j:=1 to y1 do beginIf c[i,j]=0 then begin r[i,j]:=bj[j]-ai[i]-cij[i,j];End;End;End;For i:=1 to x1 doFor j:=1 to y1 doIf c[i,j]=0 thenWriteln('a',i,j,'=',r[i,j]);{***********************************}Writeln;Writeln('____Table output____');Writeln;For i:=1 to x1 do beginFor j:=1 to y1 do beginIf c[i,j]=0 then r[i,j]:=bj[j]-ai[i]-cij[i,j];Write(r[i,j]:5);End;Writeln;End;{***********************************}For i:=1 to x1 do beginFor j:=1 to y1 do beginmax:=r[i,j];If r[i,j]>max then begin cc[i,j]:=r[i,j];End;End;End;Writeln;Write(cc[i,j]);Readln;Readln;end. Надеюсь на скорую помощь. Zadanye.rar Opisanye.rar Zadanye.rar Opisanye.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
vital_ Опубликовано 26 февраля, 2007 Жалоба Поделиться Опубликовано 26 февраля, 2007 есть прога. Стучись vital0@hotbox.ru. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 28 февраля, 2007 Жалоба Поделиться Опубликовано 28 февраля, 2007 vital_: Нет уж... извини, но за деньги я не согласен - нет их у меня пока... :( 2all Помогите, пожалуйста, горю... :( Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 28 февраля, 2007 Жалоба Поделиться Опубликовано 28 февраля, 2007 Darth Emil: Задачка действительно по объему немаленькая. Но тут есть исходник модуля на Turbo Pascal 7 для решения транспортной задачи. Твои условия в тестовый пример я вбил, естественно, сам. После компиляции и выполнения решение похоже на истину :( Прикладываю исходные тексты и скомпилированные файлы модулей. Для проверки можешь сразу после распаковки архива запустить файл trantest.exe. Trans.zip Trans.zip Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 1 марта, 2007 Жалоба Поделиться Опубликовано 1 марта, 2007 Тролль: Вот спасибо! :D А то времени нет ни на что - прихожу с учёбы выжатый как лимон... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти