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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 11:47   #1
pANd4
 
Регистрация: 16.04.2009
Сообщений: 6
По умолчанию Pascal: массивы и строковые величины. Требуется помощь.

Добрый день!
Требуется помощь в решении ряда задач.

Одномерные массивы
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) сумму положительных элементов массива, расположенных до максимального элемента.
2) изменить порядок следования элементов в массиве на обратный.


Двумерные массивы
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех строках, которые не содержат отрицательных элементов (оформить в виде функции);
2) минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы (оформить в виде процедуры).


Строковые величины
1) Составьте программу, определяющую, какие буквы встречаются в слове X вслед за буквой "д".
2) Составьте программу, подсчитывающую, сколько раз первая буква слова X встречается в слове Y.

Заранее спасибо!

Последний раз редактировалось pANd4; 16.04.2009 в 11:50.
pANd4 вне форума Ответить с цитированием
Старый 16.04.2009, 11:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pANd4
Показывай как ты массив вводишь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 11:53   #3
pANd4
 
Регистрация: 16.04.2009
Сообщений: 6
По умолчанию

массив пользователем задается
Код:
writeln ('BBeguTe Pa3Mep MaccuBa');
readln(n);
writeln ('BBeguTe MaccuB');
for i:=1 to n do
    readln (a[i]);
pANd4 вне форума Ответить с цитированием
Старый 16.04.2009, 13:42   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Ищешь максимум
Код:
max:=1;
for i:=2 to n do
 if a[i]>a[max] then max:=i;
И считаешь сумму
Код:
sum:=0;
for i:=1 to max do
 if a[i]>0 then sum:=sum+a[i];
Менять порядок

Код:
for i:=1 to n div 2 do
 begin
  temp:=a[n-i+1];
  a[n-i+1]:=a[i];
  a[i]:=temp;
 end;
Код:
uses crt;
var x,y:string;
    i,temp:integer;
    
begin
clrscr;
readln(x,y);
temp:=0;
for i:=1 to length(y) do
 if UpCase(x[1])=UpCAse(y[i]) then inc(temp);
 writeln(temp);
end.
Код:
uses crt;
const y='д';
var x:string;
    i:integer;
    f:boolean;
    s:set of char;
begin
clrscr;
readln(x);
f:=false;
for i:=1 to length(x) do
   begin
    if f then writeln(x[i]);
    if x[i]=y then f:=true
   end;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 16.04.2009 в 15:00.
alex_fcsm вне форума Ответить с цитированием
Старый 16.04.2009, 14:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дополню вышесказанное что максимум и сумму можно искать прям при вводе:

Код:
writeln ('BBeguTe Pa3Mep MaccuBa');
readln(n);
writeln ('BBeguTe MaccuB');
for i:=1 to n do begin
    readln (a[i]);
   if a[i]>a[max] then max:=i;
    sum:=sum+a[i];
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 15:03   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
Подмигивание

Цитата:
Сообщение от Stilet Посмотреть сообщение
Дополню вышесказанное что максимум и сумму можно искать прям при вводе:

Код:
writeln ('BBeguTe Pa3Mep MaccuBa');
readln(n);
writeln ('BBeguTe MaccuB');
for i:=1 to n do begin
    readln (a[i]);
   if a[i]>a[max] then max:=i;
    sum:=sum+a[i];
end;
Так ведь сумма нужна только до максимума
P.S. Да и сумма положительных
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.04.2009, 15:18   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а верно. Ну тогда только максимум
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2009, 15:28   #8
pANd4
 
Регистрация: 16.04.2009
Сообщений: 6
По умолчанию

спасибо, сделал - все работает, только вот тут:
Цитата:
Сообщение от alex_fcsm Посмотреть сообщение
И считаешь сумму
Код:
sum:=0;
for i:=1 to max do
 if a[i]>0 then sum:=sum+a[i];
нужно было в операторе цикла сделать счетчик от 1 до (max-1), т.к. максимальный элемент в сумме присутствовать не должен.

А с задачками на двумерные массивы не поможете?
pANd4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача (строковые величины) xakmen Паскаль, Turbo Pascal, PascalABC.NET 6 25.05.2011 23:13
Нужна помощь в Pascal (Одномерные массивы) JayDe Помощь студентам 16 19.12.2009 15:07
массивы Pascal -ushёl- Помощь студентам 3 23.03.2009 06:45
Строковые операции (Virtual Pascal) Vitek220 Помощь студентам 1 02.05.2008 18:11