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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2008, 06:14   #1
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию Помогите написать программы в паскале пожалуйста

С помощью операторов ветвления и циклов(только без функции)
1)В небоскрёбе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира?

2)Нарисовать на экране катящееся по наклонной вида Y=k*X колесо с четырьмя спицами



Массивы и строки:
3)Показать, что, если элементы какого-либо ряда определителя умножить на число, то опре-делитель также умножится на это же число.
neomaximus вне форума Ответить с цитированием
Старый 15.06.2008, 07:43   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Первую задачу пару дней назад решали в нескольких вариантах, ищите, да и самому такую решить, если подумать, не проблема.
С графикой возиться долго и неинтересно.
А вот с третьей задачей помогу. Првда у определителя нет ряда, поскольку это число, ряд есть у квадратной матрицы для которой считают определитель. Код я вам дам с небольшими пояснениями, ну а алгоритм определителя, перестановок и учета знака - это пожалуйста в учебники, в интнрнет, короче, что есть.
Код:
program opred;
uses crt;
type
   Tmatr=array [1..20,1..20] of real;
var n:integer;
    a:Tmatr;
    det,ch,det1:real;
    i,j,ns:integer;
procedure Per(k,n:integer;var a:Tmatr; var p:integer);
//процедура перестановки строк, если главный элемент равен 0
var i,j:integer;z:real;
begin
   z:=a[k,k];i:=k;p:=0;
   for j:=k+1 to n do
     begin
       if abs(a[j,k])>z then
          begin
            z:=abs(a[j,k]);i:=j;
            p:=p+1;
          end;
     end;
   if i>k then
   for j:=k to n do
     begin
       z:=a[i,j];a[i,j]:=a[k,j];a[k,j]:=z;
     end;
end;
function znak(p:integer):integer;
функция определения знака определителя, т.к. при каждой перестановке он меняется на противоположный
begin
if p mod 2=0 then
znak:=1 else znak:=-1;
end;
procedure opr(n:integer;var a:Tmatr;var det:real);
//собственно процедура нахождения определителя
var k,i,j,p:integer;
    r:real;
begin
det:=1;
for k:=1 to n do
   begin
     if a[k,k]=0 then per(k,n,a,p);
     det:=znak(p)*det*a[k,k];
     for j:=k+1 to n do
       begin
         r:=a[j,k]/a[k,k];
         for i:=k to n do
           begin
             a[j,i]:=a[j,i]-r*a[k,i];
           end;
       end;
   end;
end;
begin
clrscr;
write('n=');readln(n);
writeln('Ischodnaia matritsha');
randomize;
for i:=1 to n do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(10)+random;
        write(a[i,j]:6:2);
      end;
  writeln;
  end;
writeln;
opr(n,a,det);//считаем определитель исходной матрицы
writeln('opr=',det:4:1);
writeln;
write('Stroka=');readln(ns);
write('Chislo=');readln(ch);
for j:=1 to n do
a[ns,j]:=a[ns,j]*ch;
opr(n,a,det1);
writeln;
write('opr1=',det1:4:1);//считаем определитель после умножения строки на число
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите в Паскале написать программу, пожалуйста. Saaashka Помощь студентам 5 20.04.2010 19:02
Подскажите пожалуйста как написать или какие разделы/библиотеки изучить для написания программы в делфи7 CeLaVie Помощь студентам 2 27.08.2008 23:47
Помогите пожалуйста написать проверку ввода для этой программы Saaashka Помощь студентам 1 01.07.2008 09:11