Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 16.01.2011, 16:04   #1 (permalink)
matrinishna
Новичок
 
Регистрация: 15.12.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль, проверочная работа

5.Даны действительные числа А, В, С. По трём сторонам с длинами А, В, С можно построить треугольник.Найти площадь треугольника.
6.Определить, является ли натуральное число N степенью числа 4 или нет.
7.В приложении
8.Дана квадратная матрица А(n,n).Найти сумму максимальных элементов столбца матрицы
Миниатюры
aacuiyiiue4.jpg  
matrinishna вне форума   Ответить с цитированием

Старый 16.01.2011, 16:04
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обсуждения которые так или иначе похожи на вашу тему уже встречались, рекомендую вам их просмотреть

Паскаль, работа с файлами
Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
Паскаль. Работа с текстом
Работа с датами

Старый 16.01.2011, 16:43   #2 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Цитата:
Сообщение от matrinishna Посмотреть сообщение
5.Даны действительные числа А, В, С. По трём сторонам с длинами А, В, С можно построить треугольник.Найти площадь треугольника.
Код:
var
a,b,c:integer;
s,p:real;
begin
write ('a=');
readln(a);
write ('b=');
readln (b);
write ('c=');
readln(c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln ('S=',s);
readln
end.
shrek=) вне форума   Ответить с цитированием
Старый 16.01.2011, 17:51   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от matrinishna Посмотреть сообщение
6.Определить, является ли натуральное число N степенью числа 4 или нет.
Код:
VAR
 N,M:LongInt;
BEGIN
 Write('N= ');
 ReadLn(N);
 M:=1;
 Repeat
  M:=M*4;
 Until M>=N;
 If M=N then WriteLn('Yes!') else WriteLn('No!');
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.01.2011, 14:03   #4 (permalink)
Mr.Програмист
Banned
 
Регистрация: 25.01.2011
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Последняя задача:
Код:
Var a:array[1..1000,1..1000] of longint;
b:array[1..1000] of longint;
i,j,n,m,max,v:longint;
Begin
Writeln('Vvedite storony kvadrata'); {no comment}
Readln(n);
m:=n;
v:=0;
Writeln('Zapolnenie massiva');  {no comment}
For i:=1 to n do
For j:=1 to n do
Readln(a[i,j]);
max:=a[1,1];
For j:=1 to n do
For i:=1 to n do
begin
if a[j,i]>max
Then max:=a[j,i];
If n=m
then b[j]:=a[j,i];
end;
For i:=1 to j do
v:=v+b[i];
Writeln(v:2)  ;
Readln;
End.
Писал на Pascal ABC ( и она заработала сразу!!!)

Последний раз редактировалось Mr.Програмист; 28.01.2011 в 14:09
Mr.Програмист вне форума   Ответить с цитированием
Старый 28.01.2011, 15:16   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Mr.Програмист Посмотреть сообщение
Последняя задача:
Как всегда, полным-полно ошибок.
Значит, сделаем так.
Даю Вам 3 дня на то, чтобы отладить программу. Если в течение указанного срока не появится исправленный, отлаженный (оттестированный) вариант, мы с Вами расстаемся.
Не обижайтесь, но задача программиста (да-да, это слово пишется с двумя "м") на форуме - помочь, а не продемонстрировать "ай, какой я молодец!".
Есть, знаете ли, такое слово - "ответственность". Не попадалось?
Так вот - информирую. Это такое чувство, которое есть у всех членов нашего сообщества программистов, причем не только за результаты своего творчества, но и за репутацию форума в целом.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 29.01.2011, 04:55   #6 (permalink)
Mr.Програмист
Banned
 
Регистрация: 25.01.2011
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот исправленно:
Var a:array[1..1000,1..1000] of longint;
b:array[1..1000] of longint;
i,j,n,m,max,v:longint;
Begin
Writeln('Vvedite storony kvadrata');
Readln(n);
m:=n;
v:=0;
Writeln('Zapolnenie massiva');
For i:=1 to n do
For j:=1 to n do
Readln(a[i,j]);
max:=a[1,1];
For j:=1 to n do
For i:=1 to n do
begin
if a[i,j]>max
Then max:=a[j,i];
If n=m
then b[j]:=a[i,j];
end;
For i:=1 to j do
v:=v+b[i];
Writeln(v:2);
End.
Запускать на Pascal ABC.

Яркий пример "индусского кода"
Mr.Програмист вне форума   Ответить с цитированием
Старый 29.01.2011, 08:36   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Не пойдет. Ошибок существенно меньше не стало. Ладно, кое-какие подсказки:
1. (не ошибка, но тем не менее) Вводить двумерный массив "вслепую", не имея на экране подсказок - страшно неудобно. Потрудитесь организовать подсказки, чтобы было ясно, какой элемент вводится.
2. Вы вводите с консоли размерность матрицы n, затем присваиваете параметру m значение этого m (m:=n;) и в дальнейшем ни тот, ни другой параметр не меняются. А потому условие "If n=m then" абсолютно бессмысленно. И вообще, что собой представляет параметр m и зачем он был введен - ведомо только Вам.
3. Путаница с индексами массива A[i,j], A[j,i].
И это еще не полный перечень.

Значит, так. Настоятельно рекомендую взять лист бумаги, нарисовать на нем квадратную матрицу размером 3х3, 4х4 или 5х5, заполнив произвольными числами (при этом избегая каких бы то ни было симметрий), далее выписать максимальные значения в столбцах и просуммировать их. Потом запустить программу, ввести в нее матрицу и сверить результат.
Проделать это несколько раз для разных матриц разных размеров.
И только убедившись в том, что программа всегда выдает правильный ответ, выложить сюда код.

А пока перспектива расставания остается в силе.
Vladimir_S вне форума   Ответить с цитированием
Старый 30.01.2011, 15:44   #8 (permalink)
Mr.Програмист
Banned
 
Регистрация: 25.01.2011
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Мозги скрипели, выдавали синий экран и кричали остановись, но я зделал её:
Код:
Uses CRT;
Var a:array[1..1000,1..1000] of longint;
b:array[1..1000] of longint;
i,j,n,max,v:longint;
Begin
Writeln('Введите сторону квадрата');
Readln(n);
v:=0;
Writeln('Заполнение массива');
For i:=1 to n do
For j:=1 to n do
Readln(a[i,j]);
max:=a[1,1];
For j:=1 to n do
For i:=1 to n do
begin
if a[i,j]>max
Then max:=a[i,j];
b[j]:=max;
end;
For i:=1 to n do
v:=v+b[i];
Writeln(v:2);
for i:=1 to n do
begin
for j:=1 to n do
begin
Write(a[i,j],' ');
end;
Writeln;
end;
End.
Mr.Програмист вне форума   Ответить с цитированием
Старый 30.01.2011, 15:52   #9 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Mr.Програмист у меня к вам вопрос: Вы программу тестировали?
При запуске программы срузу же ошибка:
Цитата:
a:array[1..1000,1..1000] of longint;
слишком большая структура.
Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вводить двумерный массив "вслепую", не имея на экране подсказок - страшно неудобно.
жаль что не послушали совета.
И для задержки вместо writeln используется readln

Последний раз редактировалось shrek=); 30.01.2011 в 16:00 Причина: :)
shrek=) вне форума   Ответить с цитированием
Старый 30.01.2011, 16:06   #10 (permalink)
Mr.Програмист
Banned
 
Регистрация: 25.01.2011
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

МИХА Я ТЕСТИРОВАЛ НА PASCAL ABC И У МЕНЯ ОНА РАБОТАЛА
Mr.Програмист вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:04.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.