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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2008, 09:57   #1
Sid maksim
 
Регистрация: 13.05.2008
Сообщений: 9
По умолчанию Курсовая. Файлы

Вобщем надо было сёдня курсовую сдать а я из неё задачи решить не могу...

1.А). Написать программу, создающую файл символов CHARRI.CH
Б). Затем написать программу, выполняющую следующие функции:
• подсчёт общего числа символов в файле;
• запись результата в конец файла CHARRI.CH.

2. Вычислить суммы элементов верхней треугольной матрицы для матриц A(10,10), B(10,10), С(10,10)

3. А) Создать файл, содержащий сведения о сдаче студентами 1 курса кафедры «Информатика» сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам. Количество записей – 30.
Б) Написать программу зачисления студентов группы Х на стипендию. Студент, получивший все оценки «5», зачисляется на повышенную стипендию (доплата 25%). Студенты, получившие «4» и «5» зачисляются на обычную стипендию. Студент, получивший хотя бы одну оценку «3», стипендию не получает. Индекс группы вводится с клавиатуры.

4. Заданный текст распечатать по строкам, понимая под строкой либо очередные 60 символов, если среди их нет запятой, либо часть текста до запятой включительно.

Может хоть с какой-нибудь поможите, а то даже Джа уже не в помощь...
Sid maksim вне форума Ответить с цитированием
Старый 13.05.2008, 12:07   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Самая короткая по решению задача №2.
Чтобы не переписывать приложил файл.
Для того чтобы не писать три раза ввод матриц и не счмтать три раза суммы, сделаем процедуру ввода матрицы и функцию подсчета суммы.
Код:
uses crt;
const n=10;
type Tmatr=array[1..n,1..n] of integer;//тип матрица 10х10
var a,b,c:Tmatr;  //три матрицы
    i,j:integer; //счетчики по сторокам и сьолбцам
Procedure Vvod(var m:Tmatr);  //ввод матриц
begin
for i:=1 to n do
   begin
     for j:=1 to n do
       begin
         m[i,j]:=random(10);
         write(m[i,j]:3);
       end;
    writeln;
  end;
end;
Function Summ(m:Tmatr):integer;//подсчет суммы в верхнам треугольнике
var rez:integer;               //стороны треугольника: строка 1, верхние половинки
begin                           //главной и побочной диагоналей
rez:=0;
for i:=1 to n div 2 do
for j:=i to n-i+1 do
rez:=rez+m[i,j];
Summ:=rez;
end;
begin
clrscr;
randomize;
Writeln('Matrica A:');
Vvod(a);
Writeln('Summa v matrice A=',Summ(a));
readln;
Writeln('Matrica B:');
Vvod(b);
Writeln('Summa v matrice B=',Summ(b));
readln;
Writeln('Matrica C:');
Vvod(c);
Writeln('Summa v matrice C=',Summ(c));
readln
end.
Вложения
Тип файла: rar FORUM_11.rar (417 байт, 12 просмотров)
puporev вне форума Ответить с цитированием
Старый 13.05.2008, 16:35   #3
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

не самая короткая и решена неверно!
Цитата:
for i:=1 to n div 2 do
for j:=i to n-i+1 do
заменяем на:
Код:
for i:=1 to n do   
for j:=i to n do
а зачем переписывать? можно просто скопировать.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 13.05.2008, 18:00   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что-то Вы давненько не учили меня жить, лучше бы внимательно прочитали условие, прогнали мою программу, и вряд ли бы Вы нашли в ней ошибки. Зачем вам
for i:=1 to n do
for j:=i to n do
если используется лишь "внутренняя" часть верхней половины матрицы четной размерности. А насчет короткой, так это юмор такой, это не для всех.
puporev вне форума Ответить с цитированием
Старый 13.05.2008, 18:42   #5
Sid maksim
 
Регистрация: 13.05.2008
Сообщений: 9
По умолчанию

ээээээээ...спасибо...
я себя щас ваще дауном чуствую))))
Sid maksim вне форума Ответить с цитированием
Старый 13.05.2008, 19:09   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Ваш вариант выдает такую картину:
Код:
 for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          m[i,j]:=random(10);
          if (i>=1)and(i<=n div 2) and
             (j>=i)and(j<=n+i-1)
          then
          textcolor(2)
          else
          textcolor(8);
          write(m[i,j]:3);
        end;
     writeln;
   end;
мой такую:
Код:
 for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          m[i,j]:=random(10);
          if (i>=1)and(i<=n ) and
             (j>=i)and(j<=n)
          then
          textcolor(2)
          else
          textcolor(8);
          write(m[i,j]:3);
        end;
     writeln;
   end;
и читаем тут http://ru.wikipedia.org/wiki/Верхнетреугольная_матрица
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 13.05.2008, 20:19   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Извините, полностью с Вами согласен, не придал значения терминологии.
Недавно решал задачу, где нужно было произвести действия в двухмерном массиве над элементами, расположенными выше главной диагонали, ниже ее, выше побочной диагонали, ниже ее и вывести на экран верхний, нижний, левый и правый треугольники. Именно так, как я сдесь и сделал. Все таки нужно различать понятия двухмерный массив и матрица в строгом математическом смысле.
Кстати у меня не
Цитата:
(j>=i)and(j<=n+i-1)
а (j>=i)and(j<=n-i+1)
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовая работа deadh5n1 Помощь студентам 3 05.11.2008 20:05
курсовая lacost Фриланс 2 03.06.2008 21:26
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53
help! курсовая Nurik Фриланс 2 02.04.2007 11:57