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

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

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

> 4 задачи (последовательности и массивы)
сообщение
Сообщение #1





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

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


Здравствуйте!
Вот решил как говорится на старости лет получить высшее. Учусь заочно. Но последнее посещение учебного заведения, то бишь школы, было 16 лет назад. Так вот уважаемые, прошу вашей помощи, так как с pascal не в ладах был ещё в школе.

Вот задания:
1)Пусть дано натуральное число n. Получите наименьшее число вида 2k (k - верхний индекс), превосходящее n.
2)Пусть даны целые числа а1, а2, ..., аn (1,2,n - нижний индекс) среди которых могут быть повторяющиеся. Составьте новый массив из чисел, взятых по одному из каждой группы равных членов данной последовательности
3) Пусть даны вещественные числа x1 (1- нижний индекс), ..., х8. Получите квадратную матрицу порядка 8, образованную по правилу:

В скобке (мартица)
х1 х2 ... х8
х1 х2 ... х8 ( всё во второй степени)
... ... ... ...
х1 х2 ... х8 ( всё в восьмой степени)

4) Пусть смешано V1 литров воды температуры t1 с V2 литрами воды температуры t2. Составьте программу вычесления обьема и температуры образованной смеси.

Пока эти
Заранее благодарю всех кто примет участие в помощи!


Ответ уже был дан Freeman (большое спасибо) на 3 задание, вот его решение

 
uses crt;
const n=8;
var
b:array[1..n,1..n] of double;
i,j:byte;

begin
clrscr;
randomize;
for i:=1 to n do a[1,i]:=random(100);{zapolnit 4islami}

for i:=2 to n do
for j:=1 to n do a[i,j]:=a[1,j]*a[i-1,j];{zapolnit stepenyami}

for i:=1 to n do begin
for j:1 to n do write(a[i,j],' ');
writeln
end;

readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 14)
сообщение
Сообщение #2


Гость






Про информативность заголовка в правилах читал? Еще раз перечитай!!!

да я уже переименовал.. она называлась "помогите в решении задач".
Думаю надо в правила внести "Один вопрос- одна тема"...


Сообщение отредактировано: Altair -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


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


Ищущий истину
******

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

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


Цитата
1)Пусть дано натуральное число n. Получите наименьшее число вида 2^k, превосходящее n.

var
i,n:integer;
begin
readln(n);
i:=2;
while i<=n do i:=i*2;
writeln(i);
readln
end.



--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

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

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


Цитата
2)Пусть даны целые числа а1, а2, ..., аn (1,2,n - нижний индекс) среди которых могут быть повторяющиеся. Составьте новый массив из чисел, взятых по одному из каждой группы равных членов данной последовательности

не понял.
Проще говоря новый массив не должен содержать повторяющиеся элементы ?
или результат - множество чисел, которые в 1 массиве повторяются?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





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

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


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


Гость






Цитата
результат - множество чисел, которые в 1 массиве повторяются

yes2.gif Я именно так понял задание...

Что делаем для решения задачи?
1. Сортируем массив (любой, на выбор, метод из FAQ) ...
2. Проходим по отсортированному массиву:
...
Bubble(a, n); { Сначала - ТОЛЬКО сортировка }

{ а уж потом - все остальное }
i := 1; count := 0;
while i <= n do begin
T := 0;
repeat
inc(i); inc(T);
until (a[i-1] <> a[i]) or (i > n);

if T > 1 then begin
inc(count);
b[count] := a[i-1];
end;
end;
...


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


спасибо, вот Вам плюсик
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





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

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


Volvo то есть как я понял решение будет таким ( по пузырьковой сортировке)?

Type
arrType = Array[1 .. n] Of Integer;

Procedure Bubble(Var ar: arrType; n: integer);
Var i, j, T: Integer;
Begin
i := 1; count := 0;
while i <= n do begin
T := 0;
repeat
inc(i); inc(T);
until (a[i-1] <> a[i]) or (i > n);
Begin
if T > 1 then begin
inc(count);
b[count] := a[i-1];
end;
end;


тогда чем является j? или его надо убрать или заменить чем то?

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


Гость






To: leaval
no1.gif Сначала сортируем, а потом делаем то,что я написал... Посмотри еще раз наверху, я исправил...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


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

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

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


Вот такой вариант для первой задачи мне кажется на больших числах будет быстрее :

uses crt;
const
eps=0.25;
var
n,k : word;
i : single;

begin

clrscr;

write('n='); readln(n);

i := -0.25;

repeat
i := i + eps;
k := round(ln(n)/ln(2) + i);
until exp(k*ln(2))>n;

writeln(exp(k*ln(2)):2:0);

readln;

end.


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


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


Гость






To: klem4
Это ты где такой изврат видел? blink.gif Что, shr/shl уже отменили? Зачем вещественные-то типы задействовать?
uses crt;
var
n, shift: word;
begin
clrscr;
write('n='); readln(n);

shift := 0;
while n <> 1 do begin
n := n shr 1; inc(shift);
end;
writeln(n shl succ(shift));

readln;
end.


Хотя это, в принципе, аналогично решению Altair

P.S. Тесты показали - метод klem4 работает в 10.75 раз медленнее, чем у Altairblum.gif

klem4: ну извините, это было только предположение, что то конечно силшком медленно :cry2:

Сообщение отредактировано: klem4 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13





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

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


Ребята простите за мой тупизм
Volvo так она должна выглядеть

Type
arrType = Array[1 .. n] Of Integer;

Procedure Bubble(Var ar: arrType; n: integer);
Var i, j, T: Integer;
Begin
For i := 1 To n Do
For j := n DownTo i+1 Do
If ar[Pred(j)] > ar[j] Then { < }
Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End
End;

i := 1; count := 0;
while i <= n do begin
T := 0;
repeat
inc(i); inc(T);
until (a[i-1] <> a[i]) or (i > n);

if T > 1 then begin
inc(count);
b[count] := a[i-1];
end;
end;



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


Гость






Вот так она должна выглядеть (значения N и A только для теста, если надо - меняй, если нужен ввод с клавиатуры - убери комментарии):


Прикрепленные файлы
Прикрепленный файл  test_me.pas ( 845 байт ) Кол-во скачиваний: 264
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15





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

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


volvo - благодарчик
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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