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

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

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

 
 Ответить  Открыть новую тему 
> Пожалуста, помогите решить!, Сложные типы данных. Одномерные массивы.
сообщение
Сообщение #1





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

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


Помогите решить задачку.

Вводится одномерный вещественный массив фиксированной длины, состоящий из N элементов ( N может быть любое).Требуется:
1)Вывести исходный массив в строку.
2)Заменить все положительные элементы массива на первый отрицательный элемент. Вывести изменённый массив в том же виде что и исходный, но со следующей строки.

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


Профи
****

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

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


В чем именно затруднение? Вывести массив или с заменой?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Client @ 23.12.2007 16:18) *

В чем именно затруднение? Вывести массив или с заменой?



по большей части с заменной, но на самом деле я в Паскале, как слепой котёнок... а завтра зачёт... если не трудно можете от начала до конца написать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Цитата(Artemka89 @ 23.12.2007 16:26) *

по большей части с заменной, но на самом деле я в Паскале, как слепой котёнок... а завтра зачёт... если не трудно можете от начала до конца написать?

Ну, это первый пункт:
program mas;
uses crt;
Var
a : array[1..255] of real;
i : integer;
n : integer;
Begin
clrscr;
readkey;
Writeln('');
readln(n);
For i:=1 to n do begin
readln(a[i]);
write(' ',a[i]:3:2);
End;
For i:=1 to n do begin
write(' ',a[i]:3:2);
End;
Writeln;
Readkey;
End.

А над вторым подумай сам))) Там не сложно))))

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





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

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


Спаааасибо, но меня по большей части как раз и интересовал второй пункт.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

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

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


Fest, а что будет если я ввиду n=1000? ведь по условию n - любое...
мой вариант решения
{$R-}
type
TType = Real;
PDynArray = ^TDynArray;
TDynArray = array[1 .. 1] of TType;
var
arr: PDynArray;
n, i, j: integer;
begin
write('n = '); readln(n);
GetMem(arr, n * SizeOf(TType)); //резервируем память
for i := 1 To n Do readln(arr^[i]); //читаем
for i := 1 To n Do write(' ' ,arr^[i]3.gif2); //пишем
writeln;

i:=0;
repeat inc(i); until not (arr^[i]>=0); //находим первый отрицательный элемент

for j := 1 To n Do if (arr^[j])>0 then (arr^[j]):=(arr^[i]); //делаем замену(ноль остается)

for i := 1 To n Do write(' ' ,arr^[i]3.gif2); //печатаем

FreeMem(arr, n * SizeOf(TType)); //освобаждаем память
end.

Artemka89, внимательно протестируй в ТП, будут вопросы пиши...

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Цитата(compiler @ 23.12.2007 18:39) *

Fest, а что будет если я ввиду n=1000? ведь по условию n - любое...
мой вариант решения
Код
{$R-}
Type
        TType = Real;
        PDynArray = ^TDynArray;
        TDynArray = array[1 .. 1] of TType;
Var
        arr: PDynArray;
        n, i, j: integer;
begin
        write('n = '); readln(n);
        GetMem(arr, n * SizeOf(TType));    //резервируем память
        for i := 1 To n Do      readln(arr^[i]);    //читаем
        for i := 1 To n Do      write(' ' ,arr^[i]:3:2);    //пишем
        writeln;

        i:=0;
        repeat  inc(i); until not (arr^[i]>=0);    //находим первый отрицательный элемент

        for j := 1 To n Do      if (arr^[j])>0 then (arr^[j]):=(arr^[i]);    //делаем замену(ноль остается)

        for i := 1 To n Do      write(' ' ,arr^[i]:3:2);    //печатаем

        FreeMem(arr, n * SizeOf(TType));    //освобаждаем память
end.

внимательно протестируй в ТП, будут вопросы пиши...


Ты молодец, не спорю! Все правильно, но врятли это поймет человек, который толком не знает, как вывести массив... Для него это слишком сложно будет)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


Спасибо огромное Вам!
Вопрос а зачем вводить в write(' ' ,arr^[ i ] : 3 : 2); символы 3:2 ??
и обязательно делать резервирование и освобождение памяти?

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


Новичок
*

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

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


Цитата(Artemka89 @ 23.12.2007 19:22) *

Спасибо огромное Вам!
Вопрос а зачем вводить в write(' ' ,arr^[ i ] : 3 : 2); символы 3:2 ??
и обязательно делать резервирование и освобождение памяти?


Посмотри какой-нить учебник) И попробуй изменить или убрать эти циферки, увидешь, что они делают)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Человек
*****

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

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


Artemka89
>>Спасибо огромное Вам!
Нам было не тяжело...
>>Вопрос а зачем вводить в write(' ' ,arr^[ i ] : 3 : 2); символы 3:2 ?
для форматирования вывода(необязательно)
>>и обязательно делать резервирование и освобождение памяти?
резирвирование -- обязательно(иначе где ты будешь хранить данные?). без освобождения, в принципе, можна обойтись, но тогда у теьбя будет утечка памяти (это не хорошо))
подробней читай:
Все о динамических структурах данных. хотябы с указателями разбирись) Динамические массивы и матрицы(обрати внимание на пример volvo, я писал решение по нему)
Массивы. Матрицы. Типичные задачи. (я думаю, не помешает)
будут вопросы -- задавай...

Fest
>>Все правильно, но врятли это поймет человек, который толком не знает, как вывести массив... Для него это слишком сложно будет)
Эту тему уже обсуждали(правда к общему мнению не пришли( ) . Но тут динамический массив оговорен условием(!)
А от твоих постов "Посмотри какой-нить учебник)" и другие типа "я знаю кто ты" люди умнее не станут..

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Насчет: "Посмотри какой-нить учебник)" - признаю, мой косяк :\ А насчет: "я знаю кто ты" - это мой знакомый, я с ним учусь в одном университете smile.gif Так что ничего криминального. И такая фамельярность не страшна smile.gif

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


Человек
*****

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

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


Цитата(Fest @ 25.12.2007 3:14) *
А насчет: "я знаю кто ты" - это мой знакомый, я с ним учусь в одном университете smile.gif Так что ничего криминального. И такая фамельярность не страшна smile.gif
а пункт №8 правил ты не читал?
ну ладно.. меня больше интерисует сможет ли Artemka89 разобраться с динамическими массивами..


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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