Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Задачи на Turbo Pascal 7.0

Автор: starzz
Дата сообщения: 29.10.2006 14:05
2 firyuza
[more]
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
var a: array[1..10] of real;
b: array[1..20] of real;
c: array[1..20,1..10] of real;
i,j:integer;

begin
{ TODO -oUser -cConsole Main : Insert code here }
for i:=1 to 20 do
begin
writeln ('input b[',i,']');
readln (b[i]);
end;
for i:=1 to 10 do
begin
writeln ('input a[',i,']');
readln (a[i]);
end;
for i:=1 to 10 do
begin
for j:=1 to 20 do
begin
c[i,j]:=a[j]/(1+abs(b[i]));
write(c[i,j]:3:5);
end;
writeln;
end;

end.

И если я правильно поняла условия 2й задачи, то 2:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
var i,j:integer;
sum,max:real;
a:array[1..9,1..9] of real;

begin
for i:=1 to 9 do
for j:=1 to 9 do
begin
writeln('Input a[',i,',',j,']');
readln(a[i,j]);
end;
max:=0;
sum:=0;
for i:=1 to 9 do
begin
for j:=1 to (i-1) do
begin
if a[i,j]>max then max:=a[i,j];
end;
end;
for j:=1 to 9 do
begin
for i:=1 to j do
begin
if a[i,j]>max then sum:=sum+a[i,j];
end;
end;
if (sum=0) then writeln('No such elements!')
else writeln('summa= ',sum);
readln;
end.
[/more]
Автор: Pepsogen
Дата сообщения: 30.10.2006 12:11
Привет всем.
Помоги решить такую задачу.

15. Написать программу вычисления стоимости одной поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км. пробега; цена одного литра бензина (руб.). Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введённые пользователем,выделены полужирным шрифтом).

Вычисление стоимости поездки на дачу и обратно. Расстояние до дачи (км.) —> 67 Расход бензина на 100 км. пробега —> 8.5 Цена литра бензина (руб.) —> 6.5
Поездка на дачу и обратно обойдётся в 74.04 руб.


на ТурбоПаскаль или Делфи решайте сами, как вам удобней.
Автор: akaGM
Дата сообщения: 30.10.2006 14:47
Pepsogen
держи...

Код:
{$APPTYPE CONSOLE}

var
vilagedist, per100km, onelitrecost, totalcost: real;
begin
writeln('Вычисление стоимости поездки на дачу и обратно.');
write('Расстояние до дачи (км.) -> ');
readln(vilagedist);
write('Расход бензина на 100 км. пробега -> ');
readln(per100km);
write('Цена литра бензина (руб.) -> ');
readln(onelitrecost);

totalcost := 2.0 * vilagedist / 100.0 * per100km * onelitrecost;

writeln('------------------------');
writeln('Поездка на дачу и обратно обойдётся вам в ', totalcost:6:2, ' руб.');
end.
Автор: Pepsogen
Дата сообщения: 30.10.2006 15:05
akaGM, Спасибо большое=)
Как заработаю мульон баксов. про тебя вспомню)
Автор: akaGM
Дата сообщения: 30.10.2006 17:59
Pepsogen

Цитата:
Как заработаю мульон баксов.

тогда в строчке

Код: totalcost := 2.0 * vilagedist / 100.0 * per100km * onelitrecost;
Автор: Pepsogen
Дата сообщения: 31.10.2006 10:06
Да спасибо приму к сведению.
А можешь еще вот это глянуть.

1.Дан массив Y, состоящий из М целых чисел (0<M<=10; -1000<y[i]<1000). Сформировать массив из элементов, являющихся простыми числами и упорядочить полученный массив по возрастанию методом “пузырька”.
2. Дан одномерный целочисленный массив А, состоящий из N элементов. Пусть МАХ - наибольшее, а MIN - наименьшее среди элементов массива. Составить одномерный массив В из чисел, являющихся степенью двух и принадлежащих сегменту [MIN,MAX],и, которые не являются элементами массива A, располагая элементы в массиве В в порядке не убывания. Если таких элементов нет, то выдать соответствующее сообщение.
Автор: davchik
Дата сообщения: 01.11.2006 23:36
Кто может развязать эту задачу?Помогите ,пожалуйста, ее решить

"Інверсія"
Школяр Вася Пупкін виписав на аркуші паперу всі перестановки перших N натуральних чисел і вирішив підрахувати, в скількох виписаних перестановках число інверсій дорівнює K. Напишіть програму, яка допоможе йому це зробити.
Примітка. В перестановці a[1], a[2], ..., a[n] перших n натуральних чисел a[k] і a[m] утворюють інверсію, якщо a[k]>a[m] і k<m.

Вхідні дані. в єдиному рядку файлу inverse.dat знаходяться числа N, K (1<=N<=18, 0<=K<=1000).

Вихідні дані. в файл inverse.sol потрібно вивести кількість перестановок, в яких рівно K інверсій.

Приклад вхідних і вихідних даних:
inverse.dat
4 2
inverse.sol
5

Автор: Enrik
Дата сообщения: 01.11.2006 23:59
хай всем 8)
вобщем такая проблема с паскалем можете помочь
задание такое
""Вводится одиннадцатизначный личный код человека в виде LYYMMDDXXXX.
Здесь YY - год рождения, MM - месяц, DD - день рождения.
Напечатать номер месяца и номер дня когда он родился через пробел""
пример данных 37809220010
и результат должен получится таким 9 22
мне эта шняга неполучается некак сижу тут мучаюсь уже хз сколька помогите пожалуйста )
Автор: wd123
Дата сообщения: 02.11.2006 00:52
Enrik

var d:string;
begin
writeln('give me a data in format: LYYMMDDXXXX');
readln(d);
if length(d)=11 then d:=d[4]+d[5]+' '+d[6]+d[7] else
writeln('fuck you !!!');
writeln(d);
end.

Автор: davchik
Дата сообщения: 02.11.2006 22:18
Кто может развязать эту задачу?Помогите ,пожалуйста, ее решить

"Інверсія"
Школяр Вася Пупкін виписав на аркуші паперу всі перестановки перших N натуральних чисел і вирішив підрахувати, в скількох виписаних перестановках число інверсій дорівнює K. Напишіть програму, яка допоможе йому це зробити.
Примітка. В перестановці a[1], a[2], ..., a[n] перших n натуральних чисел a[k] і a[m] утворюють інверсію, якщо a[k]>a[m] і k<m.

Вхідні дані. в єдиному рядку файлу inverse.dat знаходяться числа N, K (1<=N<=18, 0<=K<=1000).

Вихідні дані. в файл inverse.sol потрібно вивести кількість перестановок, в яких рівно K інверсій.

Приклад вхідних і вихідних даних:
inverse.dat
4 2
inverse.sol
5
Автор: wd123
Дата сообщения: 02.11.2006 22:59
davchik
переведи на русский или английский
Автор: davchik
Дата сообщения: 02.11.2006 23:15
Школьник Вася Пупкин выписал на лите бумаги все перестановки первых N натуральных чисел и решил подсчитать,в скольки выписаных перестановках число инверсий равняеться К.Напишите програму,которая поможет ему это сделать.
Примечание.В перестановке a[1], a[2], ..., a[n] первых n натуральных чисел a[k] и a[m] создают инверсию,если a[k]>a[m] и k<m.
Входные данные. в одном рядке файла inverse.dat находяться числа N, K (1<=N<=18, 0<=K<=1000).
Исходные даные. в файле inverse.sol нужно вывести количество перестановок,в которых К инверсия.
Пример входных и исходных даных:
inverse.dat
4 2
inverse.sol
5
Автор: yarovit
Дата сообщения: 03.11.2006 15:44
Здравы будте.
Я вообще-то пишу все на питоне, но случай заставил писать на паскале. Вот отсюда и возникла потребность в помощи паскаль-гуру.
Мне надо реализовать следующие действия:
1. срез строки (например, вывод строки с 3 по 14 символы)
1.1 последний элемент строки
1.2 номер заданного элемента в строке
2. остаток от деления
3. добавление элемента в конец списка (на паскале списки вроде называются массивами)

Подскажите пожалуйста, какими средствами ЭТО можно сделать на паскале... очень надо.
За рание спасибо.
Автор: akaGM
Дата сообщения: 03.11.2006 16:24
yarovit

Код:
var
str: string;
l: integer;
dim: array of integer;
begin
str := '<тестовая строка>';
writeln('сама строка =' + str);

// 1. срез строки (например, вывод строки с 3 по 14 символы)
writeln(copy(str, 3, 14-3+1));

// 1.1 последний элемент строки
writeln(str[length(str)]);

// 1.2 номер заданного элемента в строке
l := 5;
writeln(str[l]);

//2. остаток от деления
writeln('остаток от деления 10 на 6 = ', 10 mod 6);

//3. добавление элемента в конец списка (на паскале списки вроде называются массивами)
l := 3;
setlength(dim, l); // заводим массив из 3-х элементов...
dim[0] := 5; // инициализируем...
dim[1] := 10;
dim[2] := 15;

setlength(dim, length(dim)+1); // увеличиваем массив на 1
dim[3] := 20; // присваиваем...
for l := 0 to length(dim)-1 do
writeln(l, '--> ', dim[l]); // выводим

dim := nil; // освобождаем...
//или setlength(dim, 0);
end.
Автор: yarovit
Дата сообщения: 03.11.2006 16:32
благодарю за оперативность, для меня самое сложное - это массивы... не привычно задавать "строгую" длину его. В питоне проще: list.append('string') - добавление в список (массив) List строки 'string'
Автор: FreemanDest
Дата сообщения: 03.11.2006 17:17
Ребята, HELP!! PLz с задачкой!
Надо созать модуль, который содержит полную информацию о связанном списке (т.е. его описание и функции, изменяющие состояние).Далее объединить этот модуль с основной программой и выполнить следующие задание: Создать связанный список из двух элементов и затем исключить первый элемент связанного списка.
Автор: rain87
Дата сообщения: 03.11.2006 18:41
FreemanDest
[more=Модуль]
Код: unit list;

interface

type tdata=integer;
plist=^tlist;
tlist=record
d:tdata;
next:plist
end;
const size=sizeof(tlist);

procedure add(var l:plist;w:tdata);{adds w at the end of list}
function length(l:plist):integer;{returns list's length}
procedure insert(var l:plist;w:tdata);{inserts w after l}
function delete(var l:plist;i:integer):boolean;{deletes node number i;
returns true if succeed}

implementation

procedure add(var l:plist;w:tdata);
var t,t2:plist;
begin
getmem(t2,size);
t2^.next:=nil;
t2^.d:=w;
if(l=nil)then l:=t2
else
begin
t:=l;
while(t^.next<>nil)do t:=t^.next;
t^.next:=t2;
end;
end;

function length(l:plist):integer;
var le:integer;
t:plist;
begin
le:=0;
t:=l;
while(t<>nil)do
begin
inc(le);
t:=t^.next;
end;
length:=le;
end;

procedure insert(var l:plist;w:tdata);
var t2:plist;
begin
getmem(t2,size);
t2^.d:=w;
if(l=nil)then
begin
l:=t2;
l^.next:=nil;
end
else
begin
t2^.next:=l^.next;
l^.next:=t2;
end;
end;

function delete(var l:plist;i:integer):boolean;
var t2,t3:plist;
t:integer;
begin
if(l=nil)then delete:=false
else
begin
if(i=0)then
begin
t2:=l;
l:=l^.next;
freemem(t2,size);
delete:=true;
end
else
begin
t:=0;
t2:=l;
while((t2^.next<>nil)and(t<i))do
begin
t3:=t2;
t2:=t2^.next;
inc(t);
end;
if(t=i)then
begin
t3^.next:=t2^.next;
freemem(t2,size);
delete:=true;
end
else delete:=false;
end;
end;
end;

end.
Автор: akaGM
Дата сообщения: 03.11.2006 19:16
yarovit

Цитата:
не привычно задавать "строгую" длину его

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


Код: dim: array of integer;
Автор: FreemanDest
Дата сообщения: 03.11.2006 22:20
rain87, огромное спасибо!!
Автор: FreemanDest
Дата сообщения: 04.11.2006 20:00
rain87, используя созданный ранее для поддержания связанного списка модуль, решить алгоритмическую задачу: Разработать программу автоматического включения и выключения нового элемента списка в хронологическом порядке.
Автор: rain87
Дата сообщения: 04.11.2006 20:22
FreemanDest
прочитал задание, аж ощутил себя в универе - полная лажа и нифига не понятно
Цитата:
Разработать программу автоматического включения и выключения нового элемента
ну а та что есть? вроде включает и выключает... что значит автоматически?
Цитата:
хронологическом порядке
ну в каком добавишь, в таком порядке и будет.. инсертнуть ещё можно...

в общем нихрена не понятно, что нужно :
Автор: FreemanDest
Дата сообщения: 04.11.2006 22:31
rain87, я вообще не понимаю связанные списки и очередь, но пытаюсь...попробовал эту прогу написать на основании твоей, получилась полная ерунда но в той вроде разобрался...
а прогу обмена элементов между двумя списками мог бы помочь сделать или программу автоматического включения и выключения нового элемента списка в алфавитном порядке, любую из этих на основании полученного модуля!
Автор: rain87
Дата сообщения: 05.11.2006 19:49

Цитата:
а прогу обмена элементов между двумя списками
блин. ну что она должна делать? все элементы одного списка переписать в другой? так это проще просто указатель переприсвоить... или как?
Цитата:
программу автоматического включения и выключения нового элемента списка в алфавитном порядке
[more=это?]
Код: uses list;
var l,t,t2:plist;
a:tdata;
begin
repeat
write('Enter a (0 - end of input): ');
readln(a);
t2:=l;
t:=l;
while(t<>nil)and(a>=t^.d)do
begin
t2:=t;
t:=t^.next;
end;
if(t2=l)then
begin
insert(l,l^.d);
l^.d:=a;
end
else insert(t2,a);
until a=0;
writeln('Got list:');
t:=l;
while(t<>nil)do
begin
writeln(t^.d);
t:=t^.next;
end;
readln;
end.
Автор: yarovit
Дата сообщения: 06.11.2006 01:04
Подскажите пожалуйста, как заставить функцию выдавать в качестве результата динамический массив? можно наглядный пример? а то я как не пробую, эта пакость на меня ругается...
Автор: rain87
Дата сообщения: 06.11.2006 18:32
yarovit
[more=Delphi?]
Код: program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

type darr=array of integer;

function fillarr(cnt:integer):darr;
begin
setlength(result,cnt);
for cnt:=cnt-1 downto 0 do result[cnt]:=random(1000000);
end;

var a:darr;
i:integer;

begin
{ TODO -oUser -cConsole Main : Insert code here }
randomize;
a:=fillarr(random(20));
for i:=0 to length(a)-1 do write(a[i]:8);
readln;
end.
Автор: akaGM
Дата сообщения: 06.11.2006 19:39
rain87

Код:
a:=fillarr(random(20)+1);
Автор: rain87
Дата сообщения: 06.11.2006 20:23
akaGM
поправка принимается отвык от паса, забыл что у него фор прекращается при =, а не при <=...
Автор: akaGM
Дата сообщения: 06.11.2006 20:29
rain87
тут не в пасе/форе дело, а в:

Код: setlength(result,cnt);
Автор: rain87
Дата сообщения: 06.11.2006 20:57
akaGM

Код: setlength(result,0);
Автор: Foster18
Дата сообщения: 07.11.2006 20:54
Короче, у меня такая проблема... Мне необходимо подсчитать количество високосных лет за определённый временной интервал. Скажем, за промежуток от 2000 до 2008 количество високосных лет равно 3. Как это закодить, чтобы переменная наращивала их количество без операторов повтора и перехода?

Страницы: 1234567891011121314

Предыдущая тема: VC++ vs. Delphi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.