Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 17:55   #1
Igormak
 
Регистрация: 09.06.2011
Сообщений: 7
По умолчанию Программа на паскале!

Здраствуйте,прошу вашей помощи так как сам рзобраться не могу!
Задача:Дан массив целых чисел А длинной n!Cформировать второй массив B,поместив в него все отрицательные числа из исходного массива!
Проблема:в основном выдает неправельные отрицательные числа!и выдает не ток ол во отриц чисел какое есть!
Вот мои наброски:
uses crt;
type mas = array [1..100] of integer;
var a,b:mas;
k,n,i,p:integer;
begin
clrscr;
k:=0;
write('Vvedite kol-vo chisle: ');
readln(n);
for i:=1 to n do begin
write('Vvedite chislo: ');
readln(a[i]);
end;
for i:=1 to n do begin
write(' ',a[i]);
end;
K:=0;
for i:=1 to n do begin
if a[i]<0 then begin
b[i]:=a[i];
k:=k+1;
end;
end;
writeln;
for i:=1 to k do
write(' ',b[i]);
readln
end.
Прогу надо написать на турбо паскале!зарание спасибо
Igormak вне форума Ответить с цитированием
Старый 09.06.2011, 18:00   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
uses crt;
type mas = array [1..100] of integer;
var a,b:mas;
k,n,i,p:integer;
begin
clrscr;
k:=0;
write('Vvedite kol-vo chisle: ');
readln(n);
for i:=1 to n do begin
write('Vvedite chislo: ');
readln(a[i]);
end;
for i:=1 to n do begin
write(' ',a[i]);
end;
K:=0;
for i:=1 to n do begin
if a[i]<0 then begin
b[k]:=a[i];
k:=k+1;
end;
end;
writeln;
for i:=1 to k do
write(' ',b[i]);
readln
end.
Цитата:
Это куда вставить
Я б сказал, но тут женщины и дети!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 09.06.2011 в 18:08.
Mad_Cat вне форума Ответить с цитированием
Старый 09.06.2011, 18:03   #3
Igormak
 
Регистрация: 09.06.2011
Сообщений: 7
По умолчанию

Это куда вставить)напиши плиз прогу законченую(исправленную)буду оченьблагодарен)
Igormak вне форума Ответить с цитированием
Старый 09.06.2011, 18:18   #4
Igormak
 
Регистрация: 09.06.2011
Сообщений: 7
По умолчанию 1

[/CODE]
Я б сказал, но тут женщины и дети![/QUOTE]
спасибо)
Igormak вне форума Ответить с цитированием
Старый 09.06.2011, 19:52   #5
ProgramerViktor
 
Регистрация: 09.06.2011
Сообщений: 4
По умолчанию

Mad_Cat,
Я конечно извиняюсь, но вы сами пробовали работу этой программы
Как можно написать, b[k]:=a[i];
и в конце выводить массив write(' ',b[i]);
если не пробовали программу, зачем путать студентов и писать филькину грамоту!
Вот Igormak правильное решение:

uses crt;
type mas = array [1..100] of integer;
var a,b:mas;
k,n,i,j:integer;
begin
clrscr;
randomize;
k:=0;
write('Vvedite kol-vo chisle: ');
readln(n);
for i:=1 to n do begin
write('Vvedite chislo: ');
readln(a[i]);
end;
for i:=1 to n do begin
write(' ',a[i]);
end;
K:=0;
j:=0;
for i:=1 to n do
if a[i]<0 then begin
k:=k+1;
j:=j+1;
b[j]:=a[i];
end;
write('Kol-vo otric chisel: ',k);
writeln;
for j:=1 to k do begin
write(b[j]:4);
end;
readln
end.

По крайней мере все работает правильно!!!

Последний раз редактировалось ProgramerViktor; 09.06.2011 в 20:33.
ProgramerViktor вне форума Ответить с цитированием
Старый 09.06.2011, 21:42   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
k:=k+1;
j:=j+1;
а зачем вам 2 счетчика то?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 09.06.2011, 22:10   #7
ProgramerViktor
 
Регистрация: 09.06.2011
Сообщений: 4
По умолчанию

Ну а как ещё?) просто если записывать заново в i то тогда число запоминается но его позиция не удовлетворяет количеству отриц чисел,например, i=5 и это число отриц
значит b[5]:=a[5];
но если чисел отриц 1, то будет ноль т.к. у числа номер 5.
а k чтобы в цикле задать диапозон чисел отриц
ProgramerViktor вне форума Ответить с цитированием
Старый 09.06.2011, 22:15   #8
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
тут женщины и дети
Виртуально они все гусары (а как же иначе ?) и вряд ли промолчат, когда топикстартер употребил вполне себе так невинное "вставить")
mss вне форума Ответить с цитированием
Старый 09.06.2011, 22:22   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А i тут причем?
речь была про одинаковые счетчики j и k.Что мешает вместо
Код:
for j:=1 to k do begin
 write(b[j]:4);
end;
Вместо k использовать j, а вместо j i?) (for i:=1 to j do ...)
И выше где кол-во выводите.

Кстати, используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.06.2011, 22:33   #10
ProgramerViktor
 
Регистрация: 09.06.2011
Сообщений: 4
По умолчанию

Возможно Alex11223 вы и правы, и так переменных меньше, но я изучаю паскаль всего полгода. пока 1 курс техникума. тем более если так посмотреть главное чтобы программа работала, а у Mad_Cat она не работала никак
ProgramerViktor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на Паскале Benka Помощь студентам 2 10.03.2011 06:27
Программа в паскале проффан Помощь студентам 1 08.10.2010 15:32
программа в паскале denis2010 Помощь студентам 9 17.01.2010 01:11
Программа на паскале Absent Помощь студентам 3 28.05.2009 17:14
Программа в паскале )) alien608 Паскаль, Turbo Pascal, PascalABC.NET 2 29.01.2009 18:41