| Помогите с pascal`ем | Программирование |
|
|
Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею.
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. Сведения об ученике состоят из его имени и фамилии и названии класса (года обучения и буквы), в котором он учится: выяснить, имеются ли в школе однофамильцы.
Задача 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.
Вот 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.
Задача №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.
и еще у меня одна задвча н графику, надо танк на рисовать, как мнне сюда рисунок выложить?
Уточни условия заданий 507, 323, 275 и выкладывай рисунок танка - ща порешаем!
Давненько я на паскале не писал.
Задание №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.
Попозже остальные сделаю
Задание №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.
я IMG могу только ссылку на рисунок выложить, а как быть если рисунок на компе?
Да выкладывай ссылку уже, давно написали бы...
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.
вот танк:
http://xs.to/xs.php?h=xs109&d=06464&f=DSC00502.JPG
и восьмая задача:
http://xs.to/xs.php?h=xs309&d=06464&f=DSC00505.JPG
Вот танк, вторую может позже решу.
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.
помогите решить 7 задач.
ну так что мне кто нить поможет???
Ты бы лучше выложил их, а там видно будет...
Помогите решить 3 задачи. Времени нету, а с паскалем Давно не работал ![]()
1(Матрицы).Дана матрица размера 5х10. Вывести номер ее последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.
2(Строки).Дана строка. Преобразовать все строчные латинские буквы в прописные.
3(Множества).Дан текст из строчных латинских букв, за которыми следует точка. Напечатать первые вхождения букв в текст, сохраняя их исходный взаимный порядок.
Заранее спасибо.
C Паскалем надо работать ![]()
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.
Протестируй получше, а то я ночью писал мог чего и перепутать. ![]()
вот задачки:
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, содержащий сведения об учениках школы. Выяснить, имеются ли однофамильцы в каких-либо параллельных классах.
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,
;
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.
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.
В 3 обчная строка
3)
var
s, s1 : String;
begin
ReadLn(s);
s1 := ',-';
if Pos(s1, s) <> 0 then
Write('Присутствует')
else
Write('Подстроки не существует');
ReadLn;
end.
народ, вот прошло пол года, а точнее один семестр и мне снова нужна ваша помощь:). На этот раз програмки простые, надеюсь не оставите без внимания.
5 заданий в прикрепленом вордовском файле.
Помогите решить три задачи на паскале,...сессия:
1) Текстовые файлы.
Написать программу, которая выделяет раздел операторов Паскаль - программы и записывает его в текстовый файл.
2) Указатели
Написать процедуру или функцию, которая находит среднее арифметическое непустого списка L.
3) массив
Создать и обработать массив с данными о студентах (например, успеваемость, или общежитие, кто где расселен. Вобщем-то задание просто на обработку массива, запись, изменение, дополнение)
Заранее спасибо.
2 ZaHack
>Массив одномерный или двумерный?
Двумерный
>Чего выделяет??! Выражайся ясней.
Я бы с радостью, но именно такое задание дала нам наш гениальный преподаватель....
Как я понял - эта программа должна открывать файл с исходником любой программы на паскале и копировать от туда блок, начиная с "begin" и заканчивая "end."....
первые две сделал - срочно нужна третья задача. плз.
3) массив
Создать и обработать массив с данными о студентах (например, успеваемость, или общежитие, кто где расселен. Вобщем-то задание просто на обработку массива, запись, изменение, дополнение)
заранее спасибо.
Начал учить паскаль по книге Окулова.
Появилась задача
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?
Функция ord(x) возвращает порядковый номер значения переменной x (относительно того типа, к которому принадлежит переменная х).
Функция pred(x) возвращает значение, предшествующее х (к первому элементу типа неприменима).
Функция succ(x) возвращает значение, следующее за х (к последнему элементу типа неприменима).
Функция abs(x) возвращает абсолютную величину x (модуль)
Спасибо оО ))
Народ может кто поможет решить пару простых задач?
Выкладывай условия задач сразу - мы подумаем.