Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
1

Массивы и др.

28.08.2010, 13:17. Просмотров 782. Ответов 11
Метки нет (Все метки)

Не могу решить правельно задачьки , помогите пожалуйста
1)Series 9.
Дано целое число N и набор из N чисел . Вывести в том же порядке номера всех нечётных чисел из данного набора и количество K таких чисел .
2)Array 21.
Дан масив размера N и целые числа K и L (1<=K<=L<=N) Найти среднее арифметическое элементов массива с номера K до L включительно .
3)String 30.
Дан символ C и строки S0 , S1 . Найти каждое вхождение символа C в строку S вставить строку S0.

Помогите их решить , подскажите что да как . Я начинающий в этом деле , многого не знаю и не понимаю ещё

Добавлено через 51 минуту
3 задание вроде бы нашёл , разбираю , а вот 1 и 2 задачу , не могу додуматься ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2010, 13:17
Ответы с готовыми решениями:

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы...

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; ...

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п....

11
Puporev
Модератор
54686 / 42104 / 29072
Регистрация: 18.05.2008
Сообщений: 99,357
28.08.2010, 13:53 2
Вот решение первой с массивом. А что означает название темы Series?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
uses crt;
const nmax=100;
var n,i,k:integer;
    x:array[1..nmax] of integer;
begin
clrscr;
repeat
write('Количество чисел до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный набор чисел:');
for i:=1 to n do
 begin
  write('x[',i,']=');
  readln(x[i]);
 end;
writeln('Номера нечетных чисел:');
k:=0;
for i:=1 to n do
if odd(x[i]) then
 begin
  write(i,' ');
  k:=k+1;
 end;
writeln;
if k=0 then write('Нечетных чисел нет!')
else write('Количество нечетных=',k);
readln
end.
Добавлено через 8 минут
2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses crt;
const nmax=100;
var n,i,k,l:integer;
    x:array[1..nmax] of real;
    sr:real;
begin
clrscr;
randomize;
repeat
write('Количество чисел до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  x[i]:=10*random;
  write(x[i]:0:2,' ');
 end;
writeln;
repeat
writeln('Введите диапазон индексов для определения среднего:');
readln(k,l);
until(k>=1)and(l>k)and(l<=n);
sr:=0;
for i:=k to l do
sr:=sr+x[i];
sr:=sr/(l-k+1);
write('Среднее от ',k,' до ',l,' = ',sr:0:2);
readln
end.
1
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
28.08.2010, 16:29  [ТС] 3
Хм , не знаю почему сайрес , то же интересно , но в учебнике именно так написанно .
А можно как то 1 упростить до минимума , а то если преподу сдам такую очень открытую спалюсь , что скатал
0
Puporev
Модератор
54686 / 42104 / 29072
Регистрация: 18.05.2008
Сообщений: 99,357
28.08.2010, 16:34 4
Цитата Сообщение от Shamra Посмотреть сообщение
можно как то 1 упростить до минимума ,
А чем вторая проще? И что вообще сложного в первой?

Добавлено через 3 минуты
Вот первая максимально обрезанная
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var n,i,k:integer;
    x:array[1..100] of integer;
begin
write('Количество чисел n=');
readln(n);
writeln('Исходный набор чисел:');
for i:=1 to n do
 begin
  write('x[',i,']=');
  readln(x[i]);
 end;
writeln('Номера нечетных чисел:');
k:=0;
for i:=1 to n do
if x[i] mod 2<>0 then
 begin
  write(i,' ');
  k:=k+1;
 end;
writeln;
if k=0 then write('Нечетных чисел нет!')
else write('Количество нечетных=',k);
readln
end.
1
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
28.08.2010, 16:37  [ТС] 5
Охты спс огромный , и 2 заодно можно , буду благодарен очень . В силу моего возраста стараюсь как могу осваевать азы языка програмирование . Учебник прочитал , но он чё то мало помог . Больше сам логически .
А чё сложного в первой , слишком много функций , которые я пока не изучал

P.S спс тебе огромный !) Жизнь человеку спас.
0
Puporev
Модератор
54686 / 42104 / 29072
Регистрация: 18.05.2008
Сообщений: 99,357
28.08.2010, 16:42 6
Цитата Сообщение от Shamra Посмотреть сообщение
слишком много функций , которые я пока не изучал
Незнание закона не освобождает от ответственности. Если вы не будете знать ни одной функции, то как вам вообще писать?

Добавлено через 2 минуты
Вот все что можно убрать, а вообще в Паскале есть Хелп, там про все написано и примеры есть, так что незнание это навешивание лапши на уши и элементарная лень.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var n,i,k,l:integer;
    x:array[1..100] of real;
    sr:real;
begin
write('Количество чисел n=');
readln(n);
writeln('Массив:');
for i:=1 to n do
 begin
  x[i]:=10*random;
  write(x[i]:0:2,' ');
 end;
writeln;
repeat
writeln('Введите диапазон индексов для определения среднего:');
readln(k,l);
until(k>=1)and(l>k)and(l<=n);
sr:=0;
for i:=k to l do
sr:=sr+x[i];
sr:=sr/(l-k+1);
write('Среднее от ',k,' до ',l,' = ',sr:0:2);
readln
end.
1
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
28.08.2010, 16:50  [ТС] 7
Да-да , вы всё правельно сказали . Но пока с преподователям , я такого не изучал и не понял пока . А если я такое принесу , у преподователя будет куча вопросов . А как ответь на них я не знаю . Вот когда упрошенно всё . Мне что-то более менее понятно .

P.S Спс огромный , прям очень благодарен.

Добавлено через 7 минут
Ух , не знаю как вас отблагодарить прямо . Вот у меня ещё вопросец , помогите разобрать и скажите ошибку , для вас это не проблема .

If 11:
Даны две переменные целого типа A и B . если их значения не равны,то присвоить каждой переменной большее из этих значений , а если равны , то присвоеть переменный нулевые значения .Вывести новые значения A , B .
Pascal
1
2
3
4
5
6
7
8
9
10
11
Program if_11;
Uses crt;
Var
a,b:integer;
Begin
writeln('введите а,b'); readln(a,b);
if a<>b then
Writeln('A=',a+1); Writeln('B=',b+1);
if a=b then
Writeln('A=0',a=0);Writeln('B=0',b=0);
End.
Подскажите в чём ошибку выдаёт ответы верные , но добавляет в них что-то лишнее типа False и 3 переменную впихивает .
0
PresAlexandr
43 / 43 / 16
Регистрация: 16.05.2009
Сообщений: 372
28.08.2010, 17:23 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Program if_11;
Uses crt;
Var
a,b:integer;
Begin
writeln('введите а,b'); readln(a,b);
if a<>b then
if a>b then b:=a
else a:=b
else
begin
a:=0;
b:=0;
end;
Writeln('A=',a);Writeln('B=',b);
ReadLn;
End.

Не по теме:

Подскажите в чём ошибку выдаёт ответы верные , но добавляет в них что-то лишнее типа False и 3 переменную впихивает .
Интересно, откуда то всё??? :jokingly:

0
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
28.08.2010, 17:44  [ТС] 9
Цитата Сообщение от PresAlexandr Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Program if_11;
Uses crt;
Var
a,b:integer;
Begin
writeln('введите а,b'); readln(a,b);
if a<>b then
if a>b then b:=a
else a:=b
else
begin
a:=0;
b:=0;
end;
Writeln('A=',a);Writeln('B=',b);
ReadLn;
End.

Не по теме:


Интересно, откуда то всё??? :jokingly:

О спасибо . М , у меня там не правельно , прост с последнего раза много много раз редактировал и забыл , что последнее было не удачным .

Добавлено через 7 минут
Вот ещё задачка , пытался что-то накарябать , но ничего не выходит .

For 37:
Дано целое вещество N(>0). Найти сумму :
1[1]+2[2]+...+N[n].
Чтобы избежать целочисленного переполнения , вычеслять слагаемые этой суммы с помощью вещественной переменной и выводить результат , как вещественное число .

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
Program for_37;
Uses crt;
Var
n,i:integer;
s:real;
Begin
Writeln('Назовите число');
Readln(n);
s:=0;
for i:=1 to n do
s:=exp(n*ln(n));
Readln(s);
end.
0
Puporev
Модератор
54686 / 42104 / 29072
Регистрация: 18.05.2008
Сообщений: 99,357
28.08.2010, 17:49 10
Pascal
1
2
3
for i:=1 to n do
s:=s+exp(i*ln(i));
writeln(s:0:0);
Добавлено через 1 минуту
Но это решение не примут, нужно 2 вложенных цикла
Pascal
1
2
3
4
5
6
7
8
s:=0;
for i:=1 to n do
 begin
  p:=1;
  for j:=1 to i do
  p:=p*i;
  s:=s+p;
 end;
1
Shamra
0 / 0 / 0
Регистрация: 28.08.2010
Сообщений: 8
28.08.2010, 18:03  [ТС] 11
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program for_37;
Uses crt;
Var
n,i,j:integer;
s,p:real;
Begin
Writeln('Назовите число');
Readln(n);
s:=0;
s:=0;
for i:=1 to n do
 begin
  p:=1;
  for j:=1 to i do
  p:=p*i;
  s:=s+p;
 end;
 writeln(s);
end.
что-то в этом роде получается да ?

Добавлено через 5 минут
Спасибо огромное всем . Очень благодарен всё получлось . Буду готовиться к здаче , надо же обьяснить что к чему .

Добавлено через 2 минуты
Наверно замучал уже со своими задачами и вопросами . Но у меня тут вопросец появился .
String 30.
Дан символ C и строки S0 , S1 . Найти каждое вхождение символа C в строку S вставить строку S0.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Program String_30;
Uses crt;
var
  s,s0:string;
  c:char;
  i:integer;
begin
Writeln('Введите s : ');
     readln(s);
     Writeln('Введите s0 : ');
readln(s0);
Writeln('Введите c : ');
     readln(c);
  i:=1;
  repeat
    if s[i]=c then
    begin
      insert(s0,s,i+1);
      inc(i,Length(s0))
    end;
    inc(i);
 
 until
    i>Length(s);
  writeln(s)
end.
Можно как нибудь укоротить ?
0
Puporev
Модератор
54686 / 42104 / 29072
Регистрация: 18.05.2008
Сообщений: 99,357
28.08.2010, 18:46 12
Вы сами понимаете что здесь написано?
Дан символ C и строки S0 , S1 . Найти каждое вхождение символа C в строку S вставить строку S0.
0
28.08.2010, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2010, 18:46

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100)
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание....

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой...

Многомерные массивы, как перебирать внутренние массивы
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru