IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы, строки, условные операторы ...
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  0  +


№1последовательности действительных чисел a1,a2,…,an есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов P2.Сравнить модуль P2 с модулем P1,указать ,какое из произведений больше.
№2Дана строка содержащая текст,заканчивающийся точкой.Вывести на экран слова, содержащие три буквы.
№3Дана последовательность действительных чисел a1,a2,…,an.Заменить все её члены,большие данного Z ,этим числом.Подсчитать количество замен.
№4Даны действительные числа a,b,c .Удвоить эти числа ,если a>=b>=c , и заменить их абсолютными значениями ,если это не так.
№5Даны числовой ряд и некоторое число E.Найти сумму трех членов ряда,модуль которых больше или равен заданному Е.Общий член ряда имеет вид : An=n!/nn
№6 Составить программу ,которая проверяет,есть ли в списке L хотя бы два одинаковых элемента
№7составить программу для вычисления значений функций F(x) на отрезке (a,b) с шагом H .Результаты представить в виде таблиц ,первый столбец который-значения аргумента,второй-соответствующие значению функции.
№8Даны действительное число а и натуральное число n.вычислить P=(a(a+1)…(a+n-1)
№9 подсчитать количество отрицательных среди чисел a,b,c
помогите пожалуйста с решением задач

Добавлено через 5 мин.
Program Zadanie7;
Uses crt;
const n=5;
var a:array[1..n] of integer;
i,p1,p2:integer;
label start;
Begin
clrscr;
p1:=1;
p2:=1;
for i:=1 to n do
begin
Write('Vvedite chisla(cherez Enter)');
readln(a[i]);
if a[i]>0 then
p1:=p1*a[i]
else
if a[i]<0 then
p2:=p2*a[i]

end;
start:
writeln;
writeln('p1=',p1);
writeln('p2=',p2);
if abs(p1)>abs(p2) then
writeln('|p1|>|p2|')
else if abs(p2)>abs(p1) then
writeln('|p2|>|p1|') else
writeln('|p2|=|p1|');
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Насколько я понял, это код первой задачи, вроде все верно, единственное, зачем метка start ? Она не нужна, убери ее, ну и
 Write('Vvedite chisla(cherez Enter)');
я бы поменял на writeln и вынес из цикла, то есть

// ...
Writeln('Vvedite chisla(cherez Enter)');
for i:=1 to n do
begin
readln(a[i]);
// ...
end;
// ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  0  +


по 7 проге...
var s1, s2, n:real
begin
readln (s1);{начало промежутка}
readln (s2);{конец промежутка}
readln (n);{шаг}
if s1>s2 then{проверка промежутка}
begin
writeln ("Первое значение должно быть левее второго!");
close;
end;
while s1<=s2 do{подсчет и вывод}
begin
write (s1);
write (" ");
write (s1*sin(s1));
writeln;
s1=s1+n;
end;
end.


Добавлено через 4 мин.
var s1, s2, n:real
begin
readln (s1);{начало промежутка}
readln (s2);{конец промежутка}
readln (n);{шаг}
if s1>s2 then{проверка промежутка}
begin
writeln ("Первое значение должно быть левее второго!");
close;
end;
while s1<=s2 do{подсчет и вывод}
begin
write (s1);
write (" ");
write (s1*sin(s1));
writeln;
s1=s1+n;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


вот посмотри пример как это надо делать: Табулирование функции

для твоего случая измени функцию F на

function f(x : single) : single;
begin
F := SIN(x);
end;


Поиск -> Табулирование функции ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Номер 4:

uses crt;
var a,b,c:integer;
begin
clrscr;
write('a: '); readln(a);
write('b: '); readln(b);
write('c: '); readln©;
if (b>=c) and (a>=b) then begin
writeln('a>=b>=c!. x2');
a:=2*a;
b:=2*b;
c:=2*c;
end
else begin
a:=abs(a);
b:=abs(b);
c:=abs©;
end;
writeln('a: ',a,' b: ',b,' c: ',c);
readkey;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


№3
Program Zadanie3;
Uses crt;
const n=5;
var a:array[1..n] of integer;
i,z,k : Integer;
begin
k:=0;
WriteLn('Vvedite z');
ReadLn(z);
for i:=1 to n do
begin
Write('Vvedite posledov-t (cheres Enter)');
Read(A[i]);
end;
for i:=1 to n do
begin
if a[i]>z then
begin
a[i]:=z;
k:=k+1;
end;
end;
WriteLn('Kolichestvo zamen',k);
end.


Мир не без добрых людей=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Номер 9:

uses crt;
var num,a,b,c:integer;
begin
clrscr;
write('a: '); readln(a);
write('b: '); readln(b);
write('c: '); readln©;
num:=0;
if a<0 then inc(num);
if b<0 then inc(num);
if c<0 then inc(num);
writeln('Число отрицательных элементов равно: ',num);
readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Angellore
В решении 4 задачи у тебя ошибка, для
a:1
b:2
c:3

должно выдавать
2
4
6
...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(klem4 @ 17.04.2007 20:01) *

Angellore
В решении 4 задачи у тебя ошибка, для
a:1
b:2
c:3

должно выдавать
2
4
6
...

1>=2>=3 ? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Извиняюсь, мой косяк, одним глазом на суловие посмотрел smile.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Номер 8:

uses crt;
var P,a,n,c:integer;
begin
clrscr;
write('a: '); readln(a);
write('n: '); readln(n);
c:=1;
p:=a;
while c<n do begin
p:=p*(a+c);
inc©;
end;
writeln('P now: ',P);
readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


№2
 const
delimiter = [#32, ',', '.', '!', ':'];
type
wrd_info = record
start, len: byte;
end;

function get_words(s: string;
var words: array of wrd_info): integer;
var
count: integer;

i, curr_len: byte;

begin
count := -1; i := 1;
while i <= length(s) do begin

отсюда while (s[i] in delimiter) and (i <= length(s)) do inc(i);

curr_len := 0;
while not (s[i] in delimiter) and (i <= length(s)) do begin
inc(i); inc(curr_len);
end;

if curr_len > 0 then begin
inc(count);
with words[count] do begin
start := i - curr_len;
len := curr_len
end;
end;

end;
get_words := count + 1;
end;


const
max_word = 255;
z =3;
var
words: array[1 .. max_word] of wrd_info;
i, n: integer;

const
s: string = 'thats all aall kol pol dol.';

begin
n := get_words(s, words);
writeln('words:');
for i := 1 to n do
if z=words[i].len then
begin
writeln(copy(s, words[i].start, words[i].len));
end;
end.

Отсюда взял Разбиение на слова. Все способы. ...
Думать особо не надо=)

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


восьмая пожалуй так...

p := 1;
for i := 0 to n - 1 do
p := p * (a + i);


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Я 8 выкладывал. Вроде, правильно smile.gif
А вот 7, правда табличка дурацкая, и неудобная для дробных/больших значение, но это уже сама поправиш smile.gif

uses crt;
var x2,a,b,i,x1,y1,H:integer;
function f(x: real):real;
begin
f:=x+3;
end;

begin
clrscr;
writeln('Enter a: '); readln(a);
writeln('Enter b: '); readln(b);
writeln('Enter H: '); readln(H);
clrscr;
x1:=7;
y1:=4;
gotoxy(1,4);
writeln(' x:');
gotoxy(1,3);
writeln('------------------------------------------------------');
gotoxy(1,5);
writeln('------------------------------------------------------');
gotoxy(1,7);
writeln('------------------------------------------------------');
gotoxy(1,6);
writeln('f(x):');
x2:=a;
while x2<=b do begin
gotoxy(x1,y1);
writeln(x2);
gotoxy(x1,y1+2);
writeln(f(x2):1 :0);
inc(x1,3);
inc(x2,H);
end;

readkey;
end.



Сообщение отредактировано: Angellore -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Angellore

Ссылку на решение этой задчи я уже приводил, чтобы числа выводились в таблицу с выравниванием, существует форматный вывод.

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 16:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name