Вход

Решения задач на паскале

Научись общаться с машиной и научи других. Все вопросы связанные с программированием и разработкой программ.

Модератор: AxeL

Сообщение N00dz 11 мая 2007 в 21:08

Вообщем, очень нужны решения трёх задачек на паскале.
Помогите, пожалуйста, кто может. Заранее благодарен!

1. Составьте программу упорядочения по возрастанию все элементов матрицы A (N, N).
2. Составьте программу вычисления среднего арифметического каждого столбца над главной диагональю (диагональ включать) матрицы B (N, N) и запишите данные значения в последнюю строку данной матрицы.
3. Составьте программу удаления строки и столбца, которые содержат максимальный элемент матрицы C (N, N).
0
Пишу регулярно

СообщениеПишу регулярно kuzia kuzia 0
Оставил 332 сообщений с 04 ноя 2006
ФР: 12
WWW
25 июня 2007 в 22:47

помогите, надо написать 2 проги под линукс на паскале...
0
Гуру

СообщениеГуру ak1ra ak1ra 0
Оставил 800 сообщений с 10 фев 2007
ФР: -107
ICQ
26 июня 2007 в 00:19

kuzia, не совсем въехал, нужен сам fpc или нужны 2 проги?
0
Пишу регулярно

СообщениеПишу регулярно kuzia kuzia 0
Оставил 332 сообщений с 04 ноя 2006
ФР: 12
WWW
26 июня 2007 в 10:52

ak1ra,

нужны проги написанные на fpc...

конечно не бесплатно...

добавлено спустя 1 час:

ak1ra,
и сам fpc тоже нужен только под ХР...
0
Гуру

СообщениеГуру ak1ra ak1ra 0
Оставил 800 сообщений с 10 фев 2007
ФР: -107
ICQ
26 июня 2007 в 12:17

kuzia, fpc тут
0

Сообщение Гость 11 сентября 2007 в 17:18

нужно составить следующие проги(лёгкие при лёгкие но я в паскале 00000) помогите
---
Переменным х,у присвоить соответственно целую и дробную части частного от деления a на b(а и b -0 целые числа).
---
дданы действительные числа х и у. если они оба отрицательные то каждое значение заменить модулем; если отрицательное только одно то оба значения увеличить на 0,5,,,, и если оба значения не отрицательные и не принадлежат отрезку [0.5,2.0] то оба значения в десять раз, в осткльных случаях оставить без изменения
---
0
Пишу регулярно

СообщениеПишу регулярно Random Random 0
Оставил 337 сообщений с 19 май 2005
ФР: 53
11 сентября 2007 в 17:49

Паскаля я не знаю, ибо архаизмы не изучаю. Все, чем могу помочь - это алгоритм:

Целочисленное деление: 5 / 3 будет равно 1
Нецелочисленное деление (хотя бы одна из перменных должна представлять собой число с плавающей точкой): 5.0 / 3 будет равно 1.(6)
Если посчитаешь разность между 2м и 1м пунктом, то получишь 1.(6) - 1 = 0.(6)
Остаток от деления: 5 % 3 будет равно 2
Функция вычисления модуля стандартно abs(переменная)
Остальные опрераторы очевидны.


И, кстати говоря, наверное, правильнее было отправить тебя почитать мануал, потому что это уж совсем основы.
0

Сообщение Da_Proger 11 сентября 2007 в 19:58

1.
var x,a,b : integer;
y : real;

x := a div b;
y := (a - b*x)/b

2.
Лень писать.. там просто ряд if (.. ) and (.. ) или if (.. ) or (.. )
и у каждого Exit в конце выполнения условия. Скучно, вобщем :)
0

Сообщение Da_Proger 12 сентября 2007 в 18:54

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

>> это вообще функции?
Операторы, если вам угодно поцепляться к словам ;)
0
Пишу регулярно

СообщениеПишу регулярно Random Random 0
Оставил 337 сообщений с 19 май 2005
ФР: 53
12 сентября 2007 в 20:06

Если б я написал:

set a 5
set b 3
set c -10
puts [expr {$a / $b}]
puts [expr {double($a) / $b}]
puts [expr {$a % $b}]
puts [expr abs($c)]

то флуда с твоей стороны было бы меньше?
Сомневаюсь, что вышеприведенные строки чем-то помогут автору.
А вот теория, которую ты называешь "маловразумительным потоком слов и цифр" мне бы, если бы я не знал основ, например, помогла.


но если человек, явно не очень разбирающийся в вопросе судит о чём-то


Забавное умозаключение 8) .

Моя ошибка в том, что я с таким как ты начал спорить.
На будущее - поупражняться в остроумии можно в ФБ, думаю там тебе будут рады.
0

Сообщение Андрей_минск 13 сентября 2007 в 00:16

Здраствуйте, помогите с написание программы на паскале:
Есть два больших числа а и б, каждое до 50 цифр.

а) сложить их
б) отнять
в) умножить
г) поделить
Спасибо.
0
Почётный форумовец

СообщениеПочётный форумовец pixel pixel 0
Оставил 5937 сообщений с 24 янв 2004
ФР: 21596
ICQ
13 сентября 2007 в 02:12

На форумах по программированию "начального уровня" обычно спрашивают: а что ты уже сделал? в чем, собственно, вопрос?

Если форум "добрый", человеку дают совет наподобие "погугли по запросу Длинная арифметика". Если форум "злой", вопрос удаляют, словно его не было. Если форум "тюфячный", человеку дают готовое решение.
0
Легенда форума

СообщениеЛегенда форума teran teran 96
Оставил 6429 сообщений с 23 янв 2004
ФР: 132715
13 сентября 2007 в 02:58

**намеренно не упомянул про запрос "длинная арифметика", значит йа злой? ((:
0

Сообщение Jarek 13 сентября 2007 в 19:15

Доброго времени суток, уважаемые форумчане!

Помогите с решением задачи(хотя бы на математическом уровне)

На поверхности планеты, являющейся шаром радиуса R, заданы 2 точки своими широтой и долшотой. Найти минимальную длину пути по поверхности планеты из одной точки в другую. Ограничения широты [-90;90], долготы [-180;180], R [100;10000]. например R= 4000 1 точка (45,120), 2ая (0,120) L=3141,59.

хм этот пример то лёгкий: долгота обеих точек одинакова, можно вычислять сразу по формуле длины дуги.
0
Пишу регулярно

СообщениеПишу регулярно DDS DDS 0
Оставил 352 сообщений с 24 янв 2004
ФР: 2528
ICQ
13 сентября 2007 в 23:38

Тут вроде написано про расстояния на сфере.
0

Сообщение Jarek 14 сентября 2007 в 06:00

DOS, спасибо большое :wink:
0

Сообщение Геннадий 14 сентября 2007 в 20:34

Помогите с решением легкой задачи
Дан интервал натуральных чисел от A до B. Определить все простые числа в этом интервеле! Зарание благодарен! :D
0
Пишу регулярно

СообщениеПишу регулярно DDS DDS 0
Оставил 352 сообщений с 24 янв 2004
ФР: 2528
ICQ
14 сентября 2007 в 22:07

Геннадий, если она легкая, то зачем спрашивать?

Задача является одной из актуальных проблем современной теории чисел. Чего хотя бы стоит огромная премия от RSA за схожую задачу - разложить число порядка 200 знаков на два простых множителя. Если рассматривать вашу задачу с сильными ограничениями, то решений может быть несколько. Предложу два из них:
1. Если числа A и B небольшие (B / 8 / 2 < размера оперативной памяти компа), то можно использовать алгоритм просеивания чисел в отрезке [2, B], также известный как "Решето Эратосфена", или схожие с ним.
2. Если отрезок [A, B] - мал, а сами числа достаточно велики, то можно попробовать пробежать по всем числам этого отрезка и проверить их на простоту каким-либо из вероятностных методов (тест Миллера — Рабина, например).
0

Сообщение Андрей_минск 15 сентября 2007 в 22:35

с длинной арифметикой разобрался, осталась ещё 1 задачка:

Есть 100 монахов, они едят 100 пирогов.
старшие едят по 10 пирогов
средние по 5
младшие по 0.5

сколько каких монахов ели пироги.

Составлял задачу простым способом:
3 цикла for , в одном наращивается кол-во старших, в др средних и в третьем младших в 3 цикле проверка условия если кол-во монахов и пирогов =100 то выводим их число на экран. но программа ненаходит результат: или криво написана или такой комбинации нету.
0
Пишу регулярно

СообщениеПишу регулярно DDS DDS 0
Оставил 352 сообщений с 24 янв 2004
ФР: 2528
ICQ
15 сентября 2007 в 22:58

Если предположить что других монархов не существует, то ответ однозначен:
старших - 1
средних - 9
младших - 90

[code:1]using System;

public class Solution
{
static void Main(string[] arg)
{
for (int a = 0; a <= 100; a ++)
for (int b = 0; b <= 100; b ++)
for (int c = 0; c <= 100; c ++)
{
if (a + b + c == 100 && 20 * a + 10 * b + c == 200)
{
Console.WriteLine("{0} {1} {2}", a, b, c);
}
}
}}[/code:1]
0
Скромный

СообщениеСкромный AZ AZ 0
Оставил 159 сообщений с 09 мар 2006
ФР: 999
ICQ
17 сентября 2007 в 09:19

DDS писал(а):
[code:1]using System;

public class Solution
{
static void Main(string[] arg)
{
for (int a = 0; a <= 100; a ++)
for (int b = 0; b <= 100; b ++)
for (int c = 0; c <= 100; c ++)
{
if (a + b + c == 100 && 20 * a + 10 * b + c == 200)
{
Console.WriteLine("{0} {1} {2}", a, b, c);
}
}
}}[/code:1]

вот после таких циклов и жалуются, почему каждая последующая версия софта жрет ресурсов как 5 предыдущих... :lol:

[code:1]using System;

public class Solution
{
static void Main(string[] arg)
{
for (int a = 0; a <= 100; a ++)
{
for (int b = 0; b <= 100 - a; b ++)
{
int c = 100 - (a + b);
if (20 * a + 10 * b + c == 200)
{
Console.WriteLine("{0} {1} {2}", a, b, c);
}
}
}
}
}[/code:1]
0
Пишу регулярно

СообщениеПишу регулярно DDS DDS 0
Оставил 352 сообщений с 24 янв 2004
ФР: 2528
ICQ
18 сентября 2007 в 01:03

AZ, прально говоришь:
[code:1]a + b + c = 100
20a + 10b + c = 200
a, b, c - натуральные
20a + 10b + (100 - a - b) = 200
19a + 9b = 100
a = 1 (mod 9)
a = 9t + 1
19t + b = 9
t = 0
b = 9
a = 19 * 0 + 1 = 1
c = 90
[/code:1]
Это вообще мат задача, для тех кто не понял ;)
И код приведен, только из-за того что мне было лень писать все выше напечатанные преобразования.
0
Скромный

СообщениеСкромный AZ AZ 0
Оставил 159 сообщений с 09 мар 2006
ФР: 999
ICQ
18 сентября 2007 в 08:48

DDS писал(а):Это вообще мат задача, для тех кто не понял ;)
И код приведен, только из-за того что мне было лень писать все выше напечатанные преобразования.

[offtopic]
вообще то тема топика предполагает, что результатом решения является как раз код ;) ну да это я так, придираюсь - просто не повезло, в неподходящее время это сообщение на глаза попалось :D
[/offtopic]
0

СообщениеНовичок Arch@ngel Arch@ngel 0
Оставил 20 сообщений с 20 ноя 2007
ФР: 12
WWW
1 декабря 2007 в 23:54

:arrow: Кто-нить в Pascal работает?! помогите please задачку решить.
Идет N-ая секунда суток. Показать в hh:mm от начала суток.

это нуно делать через div и mod. Если другим способом, то простяк..
[code:1]
program arch@;
var
mi,m,h,k:integer;
begin
write('vedite Time(sec.):');
readln(k);
h:=k div 3600;
m:=k mod 3600;
mi:=m div 60;
writeln('time:',h:2,':',mi:2);
readln;
end.
[/code:1]
написанно вродь правильно, но..
когда ввожу 32000, то норм, а когда >>32000, то ответ уходит в "-"...
чем это можно объяснить.. :!:
0
Продвинутый

СообщениеПродвинутый Dimka Dimka 0
Оставил 404 сообщений с 13 окт 2005
ФР: 9733
2 декабря 2007 в 11:03

если компилируешь в Turbo/ Borland Pascal, то это возникает из-за перполнения типа integer. Integer в нём 16 битный, т.е числа от -2^16-1 до 2^16-1.
Нужно либо перходить на fpc, либо использовать 32битный тип, не помню точно как в паскале он называется, но вроде long или longint
0
В авторитете

СообщениеВ авторитете Unmoved Unmoved -2
Оставил 2590 сообщений с 02 июл 2006
ФР: 16989
WWWICQ
2 декабря 2007 в 16:45

Скинте какойнибуть паскаль поновее а то у мнея фрии чтото не хочет работать :/
0

СообщениеНовичок Arch@ngel Arch@ngel 0
Оставил 20 сообщений с 20 ноя 2007
ФР: 12
WWW
3 декабря 2007 в 12:45

Dimka, cпасиб.. попробую...... :smt037 получиЛось (longint) СпасИбо..
Unmoved, Ver. 7
У вас нет необходимых прав для просмотра вложений в этом сообщении.
0
Продвинутый

СообщениеПродвинутый Eledven Eledven 0
Оставил 492 сообщений с 05 мар 2006
ФР: 370
3 декабря 2007 в 15:48

Arch@ngel,
[code:1]mi,m,h,k:integer;[/code:1]
замени на [code:1]mi,m,h,k:longint;[/code:1]
0

СообщениеНовичок Arch@ngel Arch@ngel 0
Оставил 20 сообщений с 20 ноя 2007
ФР: 12
WWW
3 декабря 2007 в 17:23

Eledven, ДА, уже заменил и все ok! спасиб..
0

СообщениеНовичок V@D!K V@D!K 0
Оставил 2 сообщений с 01 ноя 2007
ФР: 150
7 декабря 2007 в 17:20

Задача А: Слоны.

Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта

Дана шахматная доска размера N*N. На ней стоят K слонов. Слон - это шахматния фигура, которая бьет на любое количество клеток по всем диагоналям. Задача - подсчитать количество клеток, которые бьются хотя бы одним слоном.

Формат входного файла
В первой строке указан размер доски N (1<=N<=20) и количество установленных слонов K (1<=K<=sqr(N)). Далее следует K строкпо два числа в каждой - координаты слонов. Сначала задается номер строки, затем номер столбца, в которых стоит слон. Никакие два слона не стоят в одном и том же квадрате.
Формат выходного файла
Выведите искомое количество битых клеток.
Пример
input.txt output.txt
2 1 l 2
1 1 l
____________________________________________
2 2 l 4
1 1 l
1 2 l

(c) Районная олимпиада по информатике :-)
Помогите разобраться :-)

ps если надо, могу скинуть оставшиеся 4 задачи
:-)
0
Продвинутый

СообщениеПродвинутый Eledven Eledven 0
Оставил 492 сообщений с 05 мар 2006
ФР: 370
7 декабря 2007 в 17:31

V@D!K, скинь плз все остальные, посмотрю хоть что за олимпиада 8).
0

СообщениеНовичок V@D!K V@D!K 0
Оставил 2 сообщений с 01 ноя 2007
ФР: 150
8 декабря 2007 в 12:47

Задача В. Окружность
Дана окружностьс центром в точке(x0, y0) и радиуса R. Требуется найти точки её пересечения с осью ОХ(ось абсцисс).
Формат входного файла
В первой строке входного файла находятся 3 целых числа: x0, y0, R. Координаты центрапо модулю не превосходят 1000, а радиус окружности - натуральное число, тоже не превосходящее 1000.

Формат выходного файла

В первой строке выходного файла выведите числоточек пересечения, далее выведите абсциссы этих точек в порядке возрастания. Числа выводите по 1 в строке. Ответ считается правильным, если отличается от эталонного не более чем на 10^-6.

Пример:
инпут: 0 3 2 аутпут:0
инпут: 0 2 2 аутпут:1 0
инпут: 0 4 5 аутпут:2 -3.000000 3.000000

помоему самая простая задача с етой олимпиады:)
минут через 15 скину решение.

добавлено спустя:

[code:1]
var
x0,y0,r,x,x1,x2:shortint;
begin
assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(x0,y0,r);
if (sqr(x0)+sqr(y0)>sqr(r)) then writeln('0') else
begin
if (sqr(x0)+sqr(y0)=sqr(r)) then writeln('1 ',x0:0:6) else
begin
x:=sqrt(sqr(r)-sqr(y0);
x1:=x-x0;
x2:=x+x0;
writeln('2 ',x1:0:6,x2:0:6);
end;
end;
close(input);
close(output);
end.
[/code:1]
0

СообщениеНовичок vren vren 0
Оставил 13 сообщений с 26 окт 2006
ФР: 475
8 декабря 2007 в 18:37

V@D!K, в А я создал двумерную матрицу,
потом в цикле считывал координаты и заполнял матрицу по диагоналям (от этих точек)еденицами. в конце надо просто подсчитать еденицы.(в итоге задача набрала 36 из 100 =(. как еще можно решить?)

в В переменные должны быть вещественными.

мне вот интересно: как С решать?
0
Пишу регулярно

СообщениеПишу регулярно DDS DDS 0
Оставил 352 сообщений с 24 янв 2004
ФР: 2528
ICQ
10 декабря 2007 в 00:13

V@D!K писал(а):
...
помоему самая простая задача с етой олимпиады:)
минут через 15 скину решение.
...
Тест: (3, 0), R = 1 - Wrong Answer ;)
0
В авторитете

СообщениеВ авторитете Unmoved Unmoved -2
Оставил 2590 сообщений с 02 июл 2006
ФР: 16989
WWWICQ
10 декабря 2007 в 10:40

Ктонибуть может с городской олимпиады задачи скинуть которая была вчера а то я вот тут приболел не смог пойти :roll:
Последний раз редактировалось Unmoved Вт дек 11, 2007 13:52, всего редактировалось 2 раз(а).
0
Продвинутый

СообщениеПродвинутый Eledven Eledven 0
Оставил 492 сообщений с 05 мар 2006
ФР: 370
10 декабря 2007 в 14:59

[code:1] if (sqr(x0)+sqr(y0)=sqr(r)) then writeln('1 ',x0:0:6) else[/code:1]
Что-то не врублися 8) написанно уравнение окружности и что? 8)
Вообщем задачка математическая 8). Вместо y подставляем 0 и получаем решение, разве я не прав? 8)
0

Сообщение Shaker7 13 декабря 2007 в 06:07

Всем привет! помогите пожалуста с программами:

1)Дана строка символов. Группу символов, разделенных с одной или с обеих сторон одним или несколькими пробелами и не содержащую внутри себя пробелов, назовем словом.
Найти в строке все слова, состоящие из трех букв, в которых первая и третья согласная буква, а вторая гласная.

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

3)Дана вещественная матрица размерности n * m. Упорядочить столбцы матрицы в порядке неубыванию суммы элементов столбцов.
Сформировать одномерный массив b, в котором элементы вычисляются как произведение эле-ментов соответствующих строк.

Заранее спасибо.
0
Пишу регулярно

СообщениеПишу регулярно Pascal Pascal 0
Оставил 340 сообщений с 27 июн 2006
ФР: 4394
ICQ
2 апреля 2008 в 21:48

Народ, помогите найти ошибку, вобщем надо чтобы кружок остановился у
правого края экрана, а он улетает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
0
Почётный форумовец

СообщениеПочётный форумовец pixel pixel 0
Оставил 5937 сообщений с 24 янв 2004
ФР: 21596
ICQ
2 апреля 2008 в 22:23

Pascal, а чему R равно? И объявление GetMaxX убери, это функция (а может, и переменная, не так важно) модуля Graph, она уже определена в нём, а ты её перекрываешь.
0
Пишу регулярно

СообщениеПишу регулярно Pascal Pascal 0
Оставил 340 сообщений с 27 июн 2006
ФР: 4394
ICQ
2 апреля 2008 в 23:23

pixel, спасибо, исправил я ошибку, заработало! :-)
0
Пишу регулярно

СообщениеПишу регулярно Pascal Pascal 0
Оставил 340 сообщений с 27 июн 2006
ФР: 4394
ICQ
9 апреля 2008 в 12:12

Народ, как узнать координату точки эллипса?
0

Сообщение 0123684 13 апреля 2008 в 12:07

Сможете помочь мне с задачками
0

Сообщение 0123684 13 апреля 2008 в 12:10

http://i008.radikal.ru/0804/4e/b9b3f6e36c48.jpg

Вот задача вычислить сумму надо
0
Старик

СообщениеСтарик Сокол Сизакрылый Сокол Сизакрылый 0
Оставил 1248 сообщений с 29 июн 2006
ФР: 4062
13 апреля 2008 в 13:55

Народ помогите нужна решить задачу, произведение двух положительных чисел, с условием!!!
0
Продвинутый

СообщениеПродвинутый Eledven Eledven 0
Оставил 492 сообщений с 05 мар 2006
ФР: 370
18 апреля 2008 в 20:22

Сокол Сизакрылый, какое условие ?
0
Пишу регулярно

СообщениеПишу регулярно Pascal Pascal 0
Оставил 340 сообщений с 27 июн 2006
ФР: 4394
ICQ
22 апреля 2008 в 22:33

Подскажите, как вывести массив без повторяющихся элементов. :?:
0
Продвинутый

СообщениеПродвинутый Чарльз Дэкстер Вард Чарльз Дэкстер Вард 0
Оставил 674 сообщений с 22 ноя 2005
ФР: 665
WWWICQ
22 апреля 2008 в 23:52

Pascal, сделай второй массив с размером первого. и на месте повторных элементов ставь 1, в остальных 0 и выводи только те которым соответствует 0
0
Молчун

СообщениеМолчун Djoker Djoker 0
Оставил 73 сообщений с 02 апр 2007
ФР: 1332
WWW
24 апреля 2008 в 21:00

Pascal, бери первый элемент и посмотри есть ли в массиве ещё такой, если есть то удаляй , потом второй элемент и так же сверь и так до конца =)
У меня вопрос. Я писал прогу через PascalABC, как сделать екзешник?!, пробывал просто вместо .pas писать .exe , файл норм сохраняется, но чё-то зацикливается. Я подключал правда библиотеки , которые есть только в этом паскале, например GraphABC, как это влияет на работу экзешника?! =)
Вообщем как написать что бы я ввёл в экзешнике число и она вывела результат в файл. =) :-D
0
Пишу регулярно

СообщениеПишу регулярно K@stoRka K@stoRka 0
Оставил 398 сообщений с 27 ноя 2007
ФР: 12
ICQ
11 мая 2008 в 12:44

Народ помогите плз)) 2 задачи : 1- паскаль, 2 - Байсик

1.Создайте массив А[1..15], заполненного случайными числами от-15 до 30. Дано число X. Вывести слева от числа X все элементы числового массива меньшие этого числа, а справа - большие его.


2. Даны натуральные числа M и N. Вычислите max(min(m,2),min(n,6))

P.s.
С 1 более менее уже справился, а байсик я уже не помню.


Заранее благодарен 8)
0
В авторитете

СообщениеВ авторитете Joy Joy 0
Оставил 2971 сообщений с 07 ноя 2006
ФР: 389
ICQ
11 мая 2008 в 19:32

K@stoRka, с 1 нужна еще помощь или нет ?
во 2 не вьехал чото
так и было в задании ?
0



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4