Помогите с pascal`ем Программирование


Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

Твой софтовый форум Программирование Помогите с pascal`ем

Автор: main 11.11.2006 - 20:37

Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею.

Автор: de1ay 11.11.2006 - 21:32

QUOTE
Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею.

Тексты задач?

Автор: scorpio 12.11.2006 - 0:48

QUOTE(main @ 11.11.2006 - 19:34)
Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею.
*



Выкладывай задания, сейчас всё порешаем wink.gif

Автор: main 13.11.2006 - 20:48

275. Даны действительные числюююч10бн1юююн10.Получить х1*y1+x2*y…x10*y10. как упростить решение если исходные данные имеют следующий порядок x1,y1,…x10,y10.

252. Дана строка символов, подсчитать общее число вхождений символов +,-,* в заданную строку.

86. Дано натуральное число n сколько цифр в числе n.

56. Даны действительные положительные числа a,b,c,x,y. Выяснить пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x,y. Просовывать кирпич разрешается только так, чтобы каждое из ребер было параллельно или перпендикулярно каждой из сторон отверстия.

323. дано натуральное число n. Получить все натуральные числа, меньше n и взаимно простые с ним.

507. Сведения об ученике состоят из его имени и фамилии и названии класса (года обучения и буквы), в котором он учится: выяснить, имеются ли в школе однофамильцы.

Автор: AquaTour 14.11.2006 - 2:14

Задача 252 (Дана строка символов, подсчитать общее число вхождений символов +,-,* в заданную строку.)
var
s : String;
i, z : integer;
begin
Write('Input string: ');
ReadLn(s);
z := 0;
for i := 1 to Length(s) do
begin
if (s[i] = '-') or (s[i] = '+') or (s[i] = '*') then
Inc(z);
end;
WriteLn(z);
ReadLn;
end.

Автор: AquaTour 14.11.2006 - 2:29

Вот 2 способа решения задачи № 86 (Дано натуральное число n сколько цифр в числе n.)
Первый способ
var
i, z : LongInt;
begin
Write('Введите число: ');
ReadLn(z);
i := 1;
while z >= 10 do
begin
z := z div 10;
Inc(i);
end;
Write('Число цифр: ', i);
ReadLn;
end.

и второй, немного читерский
var
s : String;
z : LongInt;
begin
Write('Введите число: ');
ReadLn(z);
Str(z, s);
Write('Число цифр: ', Length(s));
ReadLn;
end.

Автор: AquaTour 14.11.2006 - 3:40

Задача №56 (Даны действительные положительные числа a,b,c,x,y...)
var
a, b, c, x, y : integer;
procedure Swap(var z1, z2 : integer);
var
tmp : integer;
begin
tmp := z1;
z1 := z2;
z2 := tmp;
end;
begin
Write('Введите размеры кирпича (a, b, c): ');
ReadLn(a, b, c);
Write('Введите размеры отверстия (x, y): ');
ReadLn(x, y);
if a > b then
Swap(a, B);
if b > c then
Swap(b, c);
if a > b then
Swap(a, B);
if x > y then
Swap(x, y);
if (x >= a) and (y >= B) then
Write('Кирпич пройдет через отверстие')
else
Write('Кирпич не пройдет через отверстие');
ReadLn;
end.

Автор: main 14.11.2006 - 20:58

и еще у меня одна задвча н графику, надо танк на рисовать, как мнне сюда рисунок выложить?

Автор: ZaHack 14.11.2006 - 21:31

QUOTE(main @ 14.11.2006 - 21:55)
и еще у меня одна задвча н графику, надо танк на рисовать, как мнне сюда рисунок выложить?
*



А зенитку тебе в трех проекциях нарисовать, случайно, не надо? laugh.gif
PS Рисунок можно запостить кнопкой "IMG"....

Автор: AquaTour 15.11.2006 - 0:06

Уточни условия заданий 507, 323, 275 и выкладывай рисунок танка - ща порешаем!

Автор: Quim2005 15.11.2006 - 9:52

Давненько я на паскале не писал.
Задание №275.
Даны действительные числюююч10бн1юююн10.Получить х1*y1+x2*y…x10*y10.
как упростить решение если исходные данные имеют
следующий порядок x1,y1,…x10,y10.

Решение:

var
x, y: array [1..10] of real;
i: integer;
s: string;
result: real;
begin
for i:=1 to 10 do
begin
Str(i, s);
Write('Введите X['+s+'] ');
ReadLn(x[i]);
Write('Введите Y['+s+'] ');
ReadLn(y[i]);
end;

result:=0;
for i:=1 to 10 do
begin
result:=result+x[i]*y[i];
end;

Write('Ответ = ');
WriteLn(result);
end.

Попозже остальные сделаю

Автор: Quim2005 15.11.2006 - 10:34

Задание №323
Дано натуральное число n. Получить все натуральные числа, меньше n и взаимно простые с ним.

Решение:
var
i, n: Integer;
begin
write('Введит действительное число N ');
readln(n);
writeln('Простые числа');
for i:=n downto 1 do
begin
If (n mod i)=0 Then
writeln(i);
end;
end.

Автор: main 15.11.2006 - 18:22

я IMG могу только ссылку на рисунок выложить, а как быть если рисунок на компе?

Автор: de1ay 15.11.2006 - 18:36

QUOTE
я IMG могу только ссылку на рисунок выложить, а как быть если рисунок на компе?

http://softoroom.net/go.php?go=http://softoroom.net/topic20901.html

Автор: AquaTour 16.11.2006 - 3:03

Да выкладывай ссылку уже, давно написали бы...

507. Сведения об ученике состоят из его имени и фамилии и названии класса (года обучения и буквы), в котором он учится: выяснить, имеются ли в школе однофамильцы.

type
rec = record
sn : string[30];
n : string[30];
kl : string[5];
end;
var
m : array[1..20] of rec;
i, c, j : integer;
begin
Write('Введите количество учеников: ');
ReadLn©;
for i := 1 to c do
begin
Write('Введите фамилию: ');
ReadLn(m[i].sn);
Write('Введите имя: ');
ReadLn(m[i].n);
Write('Введите класс: ');
ReadLn(m[i].kl)
end;
for i := 1 to c do
for j := 1 to c do
if (m[i].sn = m[j].sn) and (i <> j) then
WriteLn(m[i].sn, ' ', m[i].n, ' ', m[i].kl);
ReadLn;
end.

Автор: main 16.11.2006 - 9:35

вот танк:
http://xs.to/xs.php?h=xs109&d=06464&f=DSC00502.JPG

и восьмая задача:
http://xs.to/xs.php?h=xs309&d=06464&f=DSC00505.JPG

Автор: AquaTour 16.11.2006 - 14:12

Вот танк, вторую может позже решу.

uses
Graph;
var
grDriver : Integer;
grMode : Integer;
ErrCode : Integer;
begin
grDriver:=Detect;
InitGraph(grDriver, grMode, 'D:\Language\BPascal\BGI');
Line(200, 100, 230, 100);
Line(230, 100, 230, 110);
Line(210, 110, 230, 110);
Line(200, 100, 200, 130);
Line(210, 110, 210, 130);
Line(180, 130, 270, 130);
Line(180, 130, 180, 160);
Line(180, 160, 270, 160);
Line(270, 130, 270, 160);
Line(140, 160, 310, 160);
Line(140, 190, 310, 190);
Arc(140, 175, 90, 270, 15);
Arc(310, 175, 270, 90, 15);
Circle(155, 175, 10);
Circle(190, 175, 10);
Circle(225, 175, 10);
Circle(260, 175, 10);
Circle(295, 175, 10);
ReadLn;
CloseGraph;
end.

Автор: Slow motion 21.11.2006 - 6:51

помогите решить 7 задач.

Автор: Slow motion 25.11.2006 - 6:28

ну так что мне кто нить поможет???

Автор: yah 25.11.2006 - 7:52

Ты бы лучше выложил их, а там видно будет...

Автор: FOX 28.11.2006 - 23:39

Помогите решить 3 задачи. Времени нету, а с паскалем Давно не работал sad.gif
1(Матрицы).Дана матрица размера 5х10. Вывести номер ее последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.
2(Строки).Дана строка. Преобразовать все строчные латинские буквы в прописные.
3(Множества).Дан текст из строчных латинских букв, за которыми следует точка. Напечатать первые вхождения букв в текст, сохраняя их исходный взаимный порядок.
Заранее спасибо.

Автор: AquaTour 29.11.2006 - 3:41

C Паскалем надо работать smile.gif

1)
const
maxY = 5;
maxX = 3;
var
mas : array[1..maxY, 1..maxX] of Integer;
i, j : Integer;
f : Boolean;
begin
for i := 1 to maxY do
begin
for j := 1 to maxX do
Read(mas[i, j]);
ReadLn;
end;
i := maxY;
f := true;
while (i > 0) and (f) do
begin
f := false;
for j := 1 to maxX do
if mas[i, j] < 0 then
f := true;
i := i - 1;
end;
if not f then
i := i + 1;
WriteLn(i);
ReadLn;
end.

2)
var
s : string;
i : integer;
begin
ReadLn(s);
for i := 1 to Length(s) do
if (Ord(s[i]) >= 97 ) and (Ord(s[i]) <= 122) then
s[i] := Char(Byte(s[i]) - 32); //приведение типов
WriteLn(s);
ReadLn;
end.

3)
var
d : set of 'a'..'z';
s : String;
i : Integer;
begin
ReadLn(s);
for i := 1 to Length(s) do
if (Ord(s[i]) >= 97 ) and (Ord(s[i]) <= 122) and not(s[i] in d) then
begin
Write(s[i]);
Include(d, s[i]);
end;
ReadLn;
end.

Протестируй получше, а то я ночью писал мог чего и перепутать. ph34r.gif

Автор: Slow motion 29.11.2006 - 8:13

вот задачки:
1 Даны натуральное число n, действительные числа a, b, x1, y1, ..., xn, yn. Пара a, b - координаты
школы микрорайона, а пары xi, yi (i = 1, ..., n) - соответственно координаты домов этого микрорайона.
Найти расстояния от домов до школы и среднее арифметическое этих расстояний.

2 Дано натуральное число n. Получить сумму тех чисел вида , которые являются утроенными нечетными.

3 Дана строка символов S1,...,Sn. Выяснить, имеются ли в последовательности S1,...,Sn такие члены последовательности
Si , Si+1 , что Si - это запятая, а Si+1 - тире.

4 Даны действительные числа A1,..., A28, B1,..., B28. Члены последовательности C1,..., C29 связаны с членами данных последовательностей соотношениями C29=0, C29-i=A29-i/B29-i -C29-i+1 (i=1, ..., 28). Получить: C1,..., C29.

5 Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением себя самого . Число 6 - совершенное, так как 6=1+2+3. Число 8 - не совершенное, т.к. как 8 1+2+4. Дано натуральное число n. Получить все совершенные числа, меньше n.

6 Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна 2. (Определить процедуру, позволяющую распознавать простые числа).

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

Автор: AquaTour 29.11.2006 - 16:00

1)
const
max = 5;
var
i : Integer; a, b, p, s : real;
x : array[1..max] of real;
y : array[1..max] of real;
function f(j : integer) : real;//вычисление расстояния между 2-мя точками
begin
f := Sqrt(Sqr(a - x[j]) + Sqr(b - y[j]));
end;
begin
ReadLn(a, cool.gif;
for i := 1 to max do
ReadLn(x[i], y[i]);
s := 0;
for i := 1 to max do
begin
p := f(i);
WriteLn(p);
s := s + p;
end;
WriteLn('*****');
WriteLn(s / max);
ReadLn;
end.

4)
const
max = 28;
var
i : integer; a, b : array[1..max] of real;
c : array[1..max + 1] of real;
begin
for i := 1 to max do
Read(a[i]);
for i := 1 to max do
Read(b[i]);
c[max + 1] := 0;
for i := max downto 1 do
c[i] := a[i] / b[i] + c[i + 1];
for i := 1 to max + 1 do
Write(c[i] : 2 : 1, ' ');
ReadLn;
end.

5)
var
n, i : integer;
function F(inp : integer) : boolean;
var
tmp, j : integer;
begin
tmp := 0;
for j := 1 to (inp div 2) do
if inp mod j = 0 then
tmp := tmp + j;
if tmp = inp then
F := true
else
F := false;
end;
begin
ReadLn(n);
for i := 1 to n do
if F(i) then
Writeln(i);
ReadLn;
end.

Автор: AquaTour 30.11.2006 - 0:12

6)
var
i, n : Integer;
function F(v : integer) : boolean;
var
r, d : integer;
begin
d := 2;
repeat
r := v mod d;
if r <> 0 then
Inc(d);
until r = 0;
if d = v then
F := true
else
F := false;
end;

begin
ReadLn(n);
for i := n to n * 2 - 2 do
if F(i) then
if F(i + 2) then
WriteLn(i, ' - ', i + 2);
ReadLn;
end.

7)
type
rec = record
sn : string[30];{фамилия}
n : string[30];{имя}
y : string[2];{год обучения}
b : string[1];{буква класса}
end; { rec }
var
m : array[1..100] of rec;
i, n, j : integer;
f : file of rec;
begin
n := 0;
Assign(f, 'input.txt');
Reset(f);
while not EOF(f) do
begin
Read(f, m[i]);
n := n + 1;
end;
Close(f);
for i := 1 to n do
for j := 1 to n do
if (m[i].sn = m[j].sn) {проверяем одинаковые ли фамилии}
and (m[i].y = m[j].B ){проверяем год обучения}
and (i <> j) then {и проверяем что это не один и тот же ученик}
WriteLn(m[i].sn, ' ', m[i].n, ' ', m[i].y, ' ', m[i].B );
ReadLn;
end.

2)
var
i, n, z : Integer;
begin
ReadLn(n);
z := 0;
for i := 1 to n do
if Odd(i * 3) then
z := z + i;
Write(z);
ReadLn;
end.

Автор: Slow motion 30.11.2006 - 12:11

В 3 обчная строка

Автор: AquaTour 30.11.2006 - 21:49

3)
var
s, s1 : String;
begin
ReadLn(s);
s1 := ',-';
if Pos(s1, s) <> 0 then
Write('Присутствует')
else
Write('Подстроки не существует');
ReadLn;
end.

Автор: main 31.05.2007 - 18:42

народ, вот прошло пол года, а точнее один семестр и мне снова нужна ваша помощь:). На этот раз програмки простые, надеюсь не оставите без внимания.
5 заданий в прикрепленом вордовском файле.

Автор: jkalamari 6.02.2008 - 14:16

Помогите решить три задачи на паскале,...сессия:

1) Текстовые файлы.
Написать программу, которая выделяет раздел операторов Паскаль - программы и записывает его в текстовый файл.

2) Указатели
Написать процедуру или функцию, которая находит среднее арифметическое непустого списка L.

3) массив
Создать и обработать массив с данными о студентах (например, успеваемость, или общежитие, кто где расселен. Вобщем-то задание просто на обработку массива, запись, изменение, дополнение)

Заранее спасибо.

Автор: ZaHack 8.02.2008 - 22:28

Цитата | Quote(jkalamari @ 6.02.2008 - 15:16)


3) массив
Создать и обработать массив с данными о студентах (например, успеваемость, или общежитие, кто где расселен. Вобщем-то задание просто на обработку массива, запись, изменение, дополнение)
*



Массив одномерный или двумерный?

Цитата | Quote
Написать программу, которая выделяет раздел операторов Паскаль - программы и записывает его в текстовый файл.


Чего выделяет??! Выражайся ясней.

Автор: Alex Ander 9.02.2008 - 2:33

Цитата | Quote(ZaHack @ 9.02.2008 - 6:28)
Цитата | Quote
Написать программу, которая выделяет раздел операторов Паскаль - программы и записывает его в текстовый файл.

Чего выделяет??! Выражайся ясней.
*


По-моему человек ясно выразился - выводит на экран содержимое раздела операторов: от первого begin до последнего end.

Автор: jkalamari 11.02.2008 - 10:31

2 ZaHack

>Массив одномерный или двумерный?

Двумерный

>Чего выделяет??! Выражайся ясней.

Я бы с радостью, но именно такое задание дала нам наш гениальный преподаватель....
Как я понял - эта программа должна открывать файл с исходником любой программы на паскале и копировать от туда блок, начиная с "begin" и заканчивая "end."....

Автор: jkalamari 15.02.2008 - 14:29

первые две сделал - срочно нужна третья задача. плз.

3) массив
Создать и обработать массив с данными о студентах (например, успеваемость, или общежитие, кто где расселен. Вобщем-то задание просто на обработку массива, запись, изменение, дополнение)

заранее спасибо.

Автор: Expelled 24.02.2008 - 15:35

Начал учить паскаль по книге Окулова.
Появилась задача
Program My1_2;
Var a : Integer;
Begin

WriteLn ('Введите целое число');
ReadLn (а) ;
WriteLn ( ' ???????? ', Abs (a) );
WriteLn ( ' Нажмите <Enter> ' );
ReadLn
End.

Выясните, что вычисляет Abs. Выполните аналогичное исследование для выражений sqr (a), Ord (a) , Succ (a) , pred (a).

Sqr это умножение числа А самого на себя (возведение в квадрат)
Succ это а+1
pred это а-1

а что делает Abs и Ord?

Автор: drod 24.02.2008 - 16:04

Функция ord(x) возвращает порядковый номер значения переменной x (относительно того типа, к которому принадлежит переменная х).
Функция pred(x) возвращает значение, предшествующее х (к первому элементу типа неприменима).
Функция succ(x) возвращает значение, следующее за х (к последнему элементу типа неприменима).
Функция abs(x) возвращает абсолютную величину x (модуль)

Автор: Expelled 24.02.2008 - 16:55

Спасибо оО ))

Автор: AsPiD001 30.04.2008 - 5:00

Народ может кто поможет решить пару простых задач?

Автор: Alex Ander 30.04.2008 - 7:47

Выкладывай условия задач сразу - мы подумаем.


  Яндекс цитирование   Rambler's Top100