Страница 1 из 1

просьба о помощи в решении массива в паскале

Добавлено: 08 апр 2009, 21:29
Omsk-champion
помогите пожалуйста:
1. Дана строка. Подсчитать количество цифр, после которых следуют символы «+» или «-», а также количество «=». Вывести сообщение о том, совпадают ли подсчитанные количества. Если нет – вывести сообщение о том, каких символов не хватает«+», «-» или «=».
2. Дана строка, содержащая более двух слов, между словами – пробел, за последним словом точка. Вывести только те слова строки, которые начинаются с того же символа, что и первое слово.
3. Дан массив, содержащий n строк. Отсортировать первые р элементов массива по возрастанию текущих длин строк.
4. Запись определена типом
type Student=record
Gruppa, Famil, Name: sting;
Kurs: 1..5;
Ball: array [1..4] of 0..100;
end;
var Institut: array[1..100] of Student;
Вывести фамилии и номер курса студентов, имеющих задолженность по первым двум предметам (меньше 61 балла).
5. Дан массив записей, содержащий различные даты. Каждая дата представлена записью из трех полей: число, месяц, год. Определить самую раннюю дату (по месяцу) заданного года.
6. Имеется информация о сотрудниках фирмы: фамилия, имя, номер отдела, стаж работы, возраст (полных лет). Определить средний возраст сотрудников заданного отдела.

Re: просьба о помощи в решении массива в паскале

Добавлено: 08 апр 2009, 23:38
dr.Jekill
Омск, конечно, чемпион :) , но не в Pascal... и сразу такой объём!
Вот первая для начала:
[syntax=pascal]
uses crt;
const cifry=['0','1','2','3','4','5','6','7','8','9'];
znaki=['-','+'];
var s:string;
i,kol1,kol2:byte;
begin
kol1:=0;
kol2:=0;
clrscr;
write('Vvedite stroku: ');
readln(s);
for i:=1 to length(s) do
begin
if (s in znaki) and (s[i-1] in cifry) then kol1:=kol1+1;
if s='=' then kol2:=kol2+1;
end;
if kol1=kol2 then writeln('Kol-vo cifr pered +,- i kol-vo znakov = sovpadaiut.')
else
if kol1>kol2 then writeln('+,- bolshe.')
else
if kol1<kol2 then writeln('= bolshe.');
readln;
end.
[/syntax]

Re: просьба о помощи в решении массива в паскале

Добавлено: 09 апр 2009, 00:59
Omsk-champion
спасибо)))теперь есть надежда,что получиться решить остальные...посмотрри их пожалуйста!!!!!!!!!!!!!!!!
--------------------------------------------------------------------------------
Добавленное сообщение
--------------------------------------------------------------------------------
номер 2,3,5 желательно сначала посмотретььь,прошу!!!!

Re: просьба о помощи в решении массива в паскале

Добавлено: 09 апр 2009, 19:00
dr.Jekill
Вторая:
[syntax=pascal]
uses crt;
var s:string;
si:char;
i,k:byte;
begin
clrscr;
write('Vvedite stroku: ');
readln(s);
si:=s[1];
k:=0;
for i:=1 to length(s) do
if (s=' ') and (s[i+1]=si) then
begin
repeat
i:=i+1;
write(s);
until (s[i+1]=' ') or (s[i+1]='.');
writeln;
i:=i-1;
end;
readln;
end.
[/syntax]
Могут быть недочеты - не компиллировал.

Re: просьба о помощи в решении массива в паскале

Добавлено: 10 апр 2009, 09:21
Omsk-champion
dr.Jekill,у меня к тебе просьба,сможешь еще вот эти пару задач глянуть 3,5.
очень очень благодарен,а то мне в понед-к уже сдавать,а я тока 2 сделал пока.будь добр,помоги!!!!

Re: просьба о помощи в решении массива в паскале

Добавлено: 10 апр 2009, 11:48
dr.Jekill
Omsk-champion писал(а):очень очень благодарен
Тогда хоть бы отзыв добавил. Или всем наверно кажется, что модераторам отзывы не нужны? Мелочь, а приятно. Вечером, если время будет, посмотрю твои задачки

Re: просьба о помощи в решении массива в паскале

Добавлено: 10 апр 2009, 11:52
somewhere
В дефолтном стиле кнопка добавления отзыва в глаза не бросается, в отличие от большой да еще и зеленой кнопки "Спасибо" в Bluesaint

Re: просьба о помощи в решении массива в паскале

Добавлено: 10 апр 2009, 16:15
Евген
Вот возможная реализация третьей задачи.
Если что не так - прошу прощения, я новичок.
Критику принимаю)

Код: Выделить всё

Uses CRT;
Var A: array[1..n] of string;
P, T: Integer;
Bufer: String;

Begin
    Repeat
         T:=0;
         For i:=1 to P-1 do
              Begin
                     If Length(A[i])>Length(A[i+1]) then
                            Begin
                                   Bufer:=A[i]; A[i]:=A[i+1]; A[i+1]:=Bufer;
                                   T:=i;
                            End;
              End
    Until T=0;
End.

Re: просьба о помощи в решении массива в паскале

Добавлено: 10 апр 2009, 19:03
Omsk-champion
Спасибо всем большое пребольшое,за помощь!!!!не знаю чтобы без вас я делал,как говорится,мир не без добрых людей!!!!!отдельное спасибо,модератору dr.Jekill!!!!!!!ты действительно прав!!!будет пару минут,глянешь,ок :) ))