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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 13.01.2008, 23:48   #1
Raptor5
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 32
По умолчанию Народ плиз помогите с лабами

Люди помогите плиз! Нужно сдавать лабы, а я че то совсем не понимаю как их делать. Вот условия:
1) Даны целые числа а1,…,а50. Получить сумму тех чисел данной последовательности, которые кратны 5;
2) Даны целые числа a1, …, an (в этой последовательности могут быть повторяющиеся члены). Выяснить, имеется ли в последовательности хотя бы одна пара совпадающих чисел.
3) Даны натуральное число n, символы s1, …, sn. Выяснить, имеются ли в последовательности s1, …, sn такие члены последовательности si, si+1, что si - это запятая, a si+1 - тире.
4) Даны действительная квадратная матрица порядка n, натуральные числа i, j (1  i  n, 1  j  n). Из матрицы удалить i-ю строку и j-й столбец. Квадратики это меньше или равно.

PS Буду очень признателен если поможете хотя бы с некоторыми!
Raptor5 вне форума
Старый 14.01.2008, 06:23   #2
Snoopy
Форумчанин Подтвердите свой е-майл
 
Аватар для Snoopy
 
Регистрация: 14.01.2008
Сообщений: 163
По умолчанию

Цитата:
1) Даны целые числа а1,…,а50. Получить сумму тех чисел данной последовательности, которые кратны 5;
Код:
var
ar: array [1..50] of integer;
a, b, i,s:integer;
begin
a:=0; b :=5;
....
 for i:=1 to 50 do
 begin
   If (ar[i] mod b)=0 then
    S:=S+ar[i];
  end;
end;
Цитата:
2) Даны целые числа a1, …, an (в этой последовательности могут быть повторяющиеся члены). Выяснить, имеется ли в последовательности хотя бы одна пара совпадающих чисел.
Код:
var
ar: array [1..50] of integer;
a, b, i,j,s:integer;
st :string;
begin
a:=0;
 for i:=1 to 50 do
   begin
     S:=ar[i];
       for j:=1 to 50 do
        begin
        If s=ar[j] then
        begin
          st:='есть такие';
          a:=a+1;
          break;
        end;
       end;
  end;
end;
Цитата:
3) Даны натуральное число n, символы s1, …, sn. Выяснить, имеются ли в последовательности s1, …, sn такие члены последовательности si, si+1, что si - это запятая, a si+1 - тире.
Код:
var
ar: array [1..n] of integer;
a, b, i,j,s:integer;
st :string;
begin
n:=10;
 for i:=1 to n-1 do
   begin
        If ar[i]=',' then
        begin
         If ar[i+1]='-' then
           begin
            st:='est' takie;
           end;
         end;
    end;
end;
Цитата:
) Даны действительная квадратная матрица порядка n, натуральные числа i, j (1  i  n, 1  j  n). Из матрицы удалить i-ю строку и j-й столбец. Квадратики это меньше или равно.
Код:
const n=10;
var

ar: array [1..n,1..n] of integer;
ar1: array [1..n,1..n] of integer;
a,b,i,j:integer;
begin

a:=5;
b:=3;
for i:=1 to n do
   begin
    if a<>i then
     begin
      for j:=1 to n do
        begin
          if b<>j then
           ar1[i,j]:=ar[i,j];
         end;
    end;
    end;
end;

Последний раз редактировалось Snoopy; 14.01.2008 в 06:51.
Snoopy вне форума
Старый 14.01.2008, 08:19   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Задача 1. Правильно, только нужно убрать лишние переменные.
Задача 2. Лишняя переменная b. Можно решить без дополнительной строки:
Код:
program zad2;
uses crt;
var n,i,j,k:integer; a:array[1..50] of integer;
begin
  clrscr;
  write('n=') ;
  readln(n);
  randomize;
  for i:=1 to n do
     begin
       a[i]:= random(10);
       write(a[i],' ');
     end;
  writeln;
  k:=0;
  for i:=1 to n do
  for j:=1 to n do
       if (a[i]=a[j])and(i<>j) then
          begin
            k:=k+1;
          end;
       if k>0 then writeln('Yes')
       else writeln('No');
  readln;
end.
Задача 3. st:='est' takie;переставить второй апостроф в конец. Можно решить, используя стандартную функцию pos(',-',s);
Примерно так:
Код:
program zad3;
uses crt;
var i,k:integer; s:string;
begin
  clrscr;
  write('s: ') ;
  readln(s);
  k:=0;
  for i:=1 to length(s) do
     begin
       if pos(',-',s)>0 then
       k:=k+1;
     end;
  if k>0 then
  writeln('Yes')
  else writeln('No');
  readln;
  end.
Задача 4. Решена неправильно. Попробуйте вывести преобразованную матрицу и увидите, что столбец и строка никуда не девались, просто все элементы в них превратились в ноли. Кроме того в условии не оговорены размеры матрицы и номера столбца и строки, поэтому задавать программно их нельзя. Пользователь должен сам ввести эти данные, причем при вводе i и j(по условию)нужно контролировать вводимые данные.
Нужно так:
Код:
program zad4;
uses crt;
var n,i,j,k,m:integer;
    a:array[1..50,1..50]of integer;
    label 1,2;
begin
clrscr;
write('n=');readln(n);
1:
write('i=');readln(i); //проверяем правильность ввода i, если нет, то снова
if (i<1)and(i>n) then
   begin
     write('Nevernoe znachenie I');
     readln;goto 1;
   end;
2:
write('j=');readln(j);//проверяем правильность ввода j, если нет, то снова
if (j<1)and(j>n) then
   begin
     write('Nevernoe znachenie J');
     readln;goto 2;
   end;
writeln('Ishodnaia matrica:');//создаем матрицу, для наглядности числа по порядку
for k:=1 to n do
   begin
      for m:=1 to n do
         begin
           a[k,m]:=10*k+m;
           write(a[k,m]:4);
         end;
      writeln;
   end;
for k:=1 to n do          //удаление столбца
   begin
      for m:=j to n do
         begin
           a[k,m]:=a[k,m+1];
         end;
    end;
for m:=1 to n-1 do          //удаление строки
   begin
      for k:=i to n do
         begin
           a[k,m]:=a[k+1,m];
         end;
   end;
writeln;
writeln('Rezultat:');
for k:=1 to n-1 do   //вывод на экран
   begin
      for m:=1 to n-1 do
         begin
           write(a[k,m]:4);
         end;
      writeln;
   end;
readln
end.
puporev вне форума
Старый 14.01.2008, 10:55   #4
Raptor5
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 32
По умолчанию

Спасибо вам большое всем. Тока вот в первой задаче выдает, что сумма равна 0, а ведь такого быть не может.
Raptor5 вне форума
Старый 14.01.2008, 11:15   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Напиши, как ты создаешь массив, что туда вводишь, т.е. начало программы.
Тебе ведь дали только алгоритм подсчета суммы.
puporev вне форума
Старый 14.01.2008, 13:38   #6
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

к задаче 4 удаление строки
ваще решение
Цитата:
Код:
for m:=1 to n-1 do          //удаление строки   
   begin   
      for k:=i to n do   
         begin   
           a[k,m]:=a[k+1,m];   
         end;
мое решение
Код:
readln(k); // k - номер строки
for i:=k to  n-1 do
a[i]:=a[i+1];
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана

Последний раз редактировалось Plague; 14.01.2008 в 14:14. Причина: не правильный тег CODE
Plague вне форума
Старый 14.01.2008, 14:11   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если у нас матрица, то какие a[i]?
puporev вне форума
Старый 14.01.2008, 14:15   #8
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

a[i] - это строка матрицы a[n,n]
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума
Старый 14.01.2008, 14:46   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Во-первых, a[i] это не строка, а элемент линейного массива. Во-вторых элементы матрицы даже в строке обозначаются как a[i,j]. Вы просто прогоните свой код и найдете ошибки.
puporev вне форума
Старый 15.01.2008, 09:32   #10
Raptor5
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Напиши, как ты создаешь массив, что туда вводишь, т.е. начало программы.
Все я сделал нормально. еще раз спасибо за помощь.
Raptor5 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите народ Rintas Фриланс 3 24.05.2008 08:24
Народ, плиз, помогите с задачами. Заранее благодарен. Logan Паскаль, Turbo Pascal, PascalABC.NET 7 14.01.2008 14:57
Помогите с лабами Briz Помощь студентам 11 11.10.2007 15:07