Пятница, 10.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

банальная просьба о помощи
LedyДата: Среда, 10.09.2008, 00:44 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 4
Репутация: 0
Замечания: 0%
Статус: Offline
приветствую вас,великие умы современности...к моему позору я совсем не понимаю Паскаль(хотя были попытки). теперь только из-за двух несданных задач(остальные худо-бедно осилила), хотят выгнать из института(хотя я прилежный студент и других долгов не имею).я никак не могу их прокомментировать в силу слабости мысли в данной области. если можете, помогите(вас,наверно,заколебала уже эта фраза!!!). короче, 1).двумерный массив:вычислить сумму элементов выше главной диагонали 2). дана строка, содержащая ";".подсчитать колличество знаков до и после ";".
 
SeqularДата: Среда, 10.09.2008, 07:02 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ledy, Да уж, ситуация - хуже некуда. Задачки на самом деле элементарнейшие )Попробуем разобраться.

Code

Uses CRT;
Const m = 5;
Var a: Array[1..m, 1..m] of Integer;
     s: Integer;
     i, j: Byte;
Begin
ClrScr;
Randomize;
For i := 1 to m do
     Begin
     For j := 1 to m do
         Begin
         a[i,j] := Random(10);
         Write(a[i,j], '   ');
         End;
     Writeln(#13#10);
     End;
Writeln(#13#10);
s := 0;
(* !!!!!!!!!!! *)
For j := 1 to m do
     For i := 1 to j do
         Begin
         If (i = j) then continue;
         s := s + a[i,j];
         End;
Writeln('Summa: ', s);
Readkey;

End.

Под тем местом, где комментарий "!!!!!" слабый цикл. Его можно немного оптимизировать, но у меня с утра голова не варит. Я вам позже скину оптимизированный фрагмент. Но и без этого задача работает, проверил на 4-х массивах, дальше не стал )) Если что-то не срастется - пишите, подумаем.

Насчет второй задачи:

Code

Uses CRT;
Var s: String;
     i: Byte;
Begin
ClrScr;
s := 'soro;k banan';
Writeln('Stroka: ',s,#13#10);
i := Pos(';',s);
Writeln('Do znaka ";": ',i-1);
Writeln('Posle znaka ";": ',length(s)-i);
Readkey;
End.

Это в том случае, если у нас всего 1 раз встречается символ ";". А если их несколько, или вообще нет - нужно уточнить условия. Вроде как бы все.


Поддерживаю также проект сообщество молодых сисадминов
 
LedyДата: Среда, 10.09.2008, 20:32 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 4
Репутация: 0
Замечания: 0%
Статус: Offline
Seqular, я даже не знаю, как и выразить свою благодарность к вам) у меня просто нет слов...сейчас пойду, попробую сдать. надеюсь, мои мучения скоро кончатся...даже не представляете, как мне помогли)) ну бывают же умные люди...

Добавлено (10.09.2008, 13:32)
---------------------------------------------
не сдала((...вот так бред. я очень прошу вас помочь мне исправить ошибки. тот вариант, который вы мне написали, преподдаватель не принял бы в следствии того, что там есть неизучаемые нами знаки(я ж на гумфаке учусь, там всё примитивно). а вот программа, над которой я тудилась(опираясьна вашу,конечно), неверно считает сумму элементов выше главной диагонали. укажите на помарку, если вас не затруднит)

uses crt;
var a:array[1..50,1..50]of integer;
n,i,j,sum:integer;
begin
clrscr;
write(Vvedite razmer matricy n=');
readln(n);
randomize;
sum:=0;
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(20);
write(a[i,j]:4);
if j>i then sum:=sum+a[i,j];
end;
writeln;
end;
write('Sum=',sum);
readln
end.

 
SeqularДата: Среда, 10.09.2008, 22:37 | Сообщение # 4
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ledy, Убедительная просьба заключать исходный код в тег "code" (в окне редактирования ответа).
Я проверил ваш исходник. Непонятно, почему он вам не понравился. Но он очень даже замечательно работает. Кое-что подкорректировал, но алгоритм не менял.
Присылаю скриншот в файле.
Вот. Смотрим. Начну с первой строки и далее по остальным.
2+12+1+18+13+19+16+6+4+17=108
Все верно считает!
Прикрепления: 5788067.gif (3.2 Kb)


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Среда, 10.09.2008, 22:37 | Сообщение # 5
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Сам код: (ваш)
Code
uses crt;  
var a:array[1..50,1..50]of integer;
     n,i,j,sum:integer;
begin
clrscr;
write('Vvedite razmer matricy. N: '); readln(n);
randomize;
sum:=0;
for i:=1 to n do
     begin
     for j:=1 to n do
         begin
         a[i,j]:=random(20);
         write(a[i,j]:4);
         if j>i then sum:=sum+a[i,j];
         end;
     writeln;
end;
write('Summa: ',sum);
readkey;
end.


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Среда, 10.09.2008, 22:46 | Сообщение # 6
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ledy, Насчет второй задачи, преподу нужно объяснить, что действовать по шаблону = плохо. И нужно учиться и развиваться. Но это вы уже сами расскажите ему, (вы же гумфак, а я всего-лишь физмат), поэтому скину вам оптимизированный вариант:
Code
Uses CRT;
Const s: String = 'Privet;Test';
Var i: Byte;
     number: Byte;
Begin
ClrScr;
Writeln(s);
For i := 1 to length(s) do
     Begin
     If (s[i] <> ';') then inc(number)
                      else Begin
                           Writeln('Do ";": ',number);
                           number := 0;
                           End;
     End;
Writeln('Posle ";": ',number);
ReadKey;
End.

Ну конечно он не оптимизирован, а наоборот, сделан под начинающих )) Если вопросы есть по каким-то операторам или принципу работы - задавайте смело! С зачетом надо что-то делать, это факт )) Удачи


Поддерживаю также проект сообщество молодых сисадминов
 
LedyДата: Четверг, 11.09.2008, 00:56 | Сообщение # 7
Новичок
Группа: Пользователи
Сообщений: 4
Репутация: 0
Замечания: 0%
Статус: Offline
чувствую себя обязанной по гроб жизни...ну как мне тебя отблагодарить,а?! я вся уже замаялась; какие этот паскаль мне только ошибки не выводил...мрак))чаще всего наблюдалась error 15 "file not found". я решила,что это какой-то косяк с самой программой и скачала себе паскаль заново. дело пошло лучше) потом,стыдно признаться,конечно,были проблемы с сохранением(до сих пор не поняла,почему файл нельзя сохранить куда угодно)благо,зашёл друг и помог(хотя сам в этом не силён). так что надеюсь, что в скором времени сдам) я правда бесконечно благодарна. ваша отзывчивость и способности оставляют безумно приятное впечатление. если нужна будет помощь в области гум.наук-обращайтесь(я не такая глупая,какой могу показаться..ну,разве только чуть чуть)) и ещё раз спасибо))
 
SeqularДата: Четверг, 11.09.2008, 06:33 | Сообщение # 8
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ledy, Да ты не кажешься глупой. Просто гуманитарий - это действительно не то направление, где легко дается программирование. Мы все в чем-то сильны ). Вот..
Насчет ошибок паскаля - это дело поправимое. Если в синтаксисе проблема - он даже строку показывает, где проблема. Там уже, поразмышляв, можно понять почему возникла ошибка и исправить. Вот.. Гораздо хуже бывает, когда паскаль не показывает ошибок (т.е. синтаксис верен, но что-то с логикой. Например неверный ответ) вот тогда можно потратить часы на отладку и поиск ошибки. А бывает просто 2 оператора местами поменять и все нормально )

Сохранять в принципе можно в любую папку. Для этого есть целых 3 способа:

1) Использовать переход по папкам. Например, если сейчас активная папка "C:\TP7\BIN", а сохранить нужно на "C:\" то в качестве имени сохраняемого файла пишем: "..\..\1.pas" и все. Символ ".." означает переход на уровень выше в папках )

2) Написать путь сохранения полностью. Например, как в прошлом случае, можно написать имя файла:
"C:\1.pas". Ну или указать другой диск. В общем все делается вручную.

3) Использовать опцию "File -> Change Dir". Там выбрать диск и папку. Потом нажать "ОК" и сохранить в нее.

Все это так мутороно, потому что паскаль разрабатывался как DOS-приложение. А операционная система DOS немного устарела.

Вот. А насчет благодарности - просто буду рад, если будешь продолжать к нам заходить. Ну там задачку подкинуть, или просто пообщаться. Ну и чтобы друзья знали про наш сайт. Мало ли кому пригодиться )) Решаем задачки мы, как видишь, не требуя ничего в замен (практически) =)))

Ну вот, удачи и всего доброго!


Поддерживаю также проект сообщество молодых сисадминов
 
LedyДата: Вторник, 23.09.2008, 03:19 | Сообщение # 9
Новичок
Группа: Пользователи
Сообщений: 4
Репутация: 0
Замечания: 0%
Статус: Offline
smile respect

Добавлено (22.09.2008, 20:19)
---------------------------------------------
кстати, зачёт я сдала)) даже немного начала разбираться в паскале...хочуначать тщательное изучение(хотя поздно спохватилась,курс информатики у нас закончился).самостоятельно смогла сделать несколько(хоть и элементарных,наверно),задач, данных преподом))короче, спасибо вам за ваш сайт))))

 
SeqularДата: Вторник, 23.09.2008, 09:54 | Сообщение # 10
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ledy, Всегда пожалуйста! Если что-то понадобится - вы всегда можете к нам обратиться! Всего доброго! Это темку закрываю.

Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;