ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1911  
Старый 22.11.2009, 18:38
Аватар для nevert
nevert
Новичок
Регистрация: 27.07.2009
Сообщений: 5
Провел на форуме:
98222

Репутация: 0
По умолчанию

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


Цитата:
Лаба 8
Задание:Дан массив D(15) элементы массива который больше в 5 уменьшить в 3 раза , а остальные элементы увеличить на 4.

Моё решение:

Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
D[i]:=random(20)-10;
write(D[i]:4);
end;
writeln;
for i:=1 to n do
begin
IF D[i]>5 then D:=D[i]/3 else b:=D[i]+4;
writeln (6:4:2);
end;
writeln;
readln;
end.

Перед else выдаёт ошибку.

Лаба 9
Задание: Дан массив E(11) найти произведение отрицательных элементов в массиве.

Моё решение:

Program PR9;
Uses Crt;
Const n=11;
Var
E:array [1..n] of integer;
P,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
E [i]:=random (10)-5;
writeln(E[i]:5);
end;
writeln;
P:=1;
for i:=1 to n do
begin
IF E [i]>0 then P:=P*E[i];
end;
writeln ('p=' , p:5);
readln;
end.

Работает но коряво, проверте просто.


Лаба 10
Задание: Дан массив (V10) найти полусумму нечётных эл-ов массива.

Моё решение:

Program PR10;
Uses Crt;
Const n=10;
Var
V:array [1..n] of integer;
i,d,s: integer;
sr:real;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
V[i]:=random(20);
writeln(V[i]:3);
end;
writeln;
for i:=1 to n do
begin
s:=0;
IF V[i] MOD 2=1 then s:=s+V[i];
sr:=s/2;
end;
writeln ('sr=',sr:5:3);
readln;
end.

Опять же, просто проверьте.


Лаба 11

Задания нету) Есть тока решение, просмотрите пожалуйста сам код. Программа работает но криво =\

Program PR11;
Uses Crt;
Const n=3;m=4;
var
D:array [1..n , 1..m] of integer;
j,i,u:integer;
b:real;
begin
TextAttr:=$4B;ClrScr;
for j:=1 to n do
begin
for i:=1 to n do
begin
D[i,j]:=random(20)-10;
write (D[i,j]:u);
end;
writeln;
end;
for j:=1 to n do
begin
IF D[i,j]<3 then b:=D[i,j]+3 else b:=D[i,j]/12;
writeln (b:4:2);
end;
writeln;
readln;
end.

Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.

Решение:

Program PR12;
Uses Crt;
Const n=5;m=3;
Var
O:array [1..n, 1..m] of integer;
i,j,p,k:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
begin
for i:=1 to n do
begin
O[i,j]:=random(20)-10;
write(O[i,j]:4);
end;
writeln;
end;

p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1;
end;

writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.

опять же, проверьте программу, работает коряво)
 
Ответить с цитированием

  #1912  
Старый 22.11.2009, 20:27
Аватар для Muxa1L
Muxa1L
Новичок
Регистрация: 09.04.2007
Сообщений: 1
Провел на форуме:
20994

Репутация: 1
По умолчанию

В лабе 8 по-хорошему должно быть так:
Код:
Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
  TextAttr:=$4B; // зачем это вообще не знаю...
  ClrScr;  
  randomize; 
  for i:=1 to n do
  begin
    D[i]:=random(20)-10;
    write(D[i]:4);
  end;
  writeln;
  for i:=1 to n do
  begin
    IF D[i]>5 then D[i]:=D[i] div 3 // так как у нас массив интежеров.
      else D[i]:=D[i]+4;
   writeln (D[i]:4:2);
  end;
  writeln;
  readln;
end.
В лабе 9 вместо того, чтоб искать произведение отрицательных элементов - ищет положительные.

Код:
Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.

Решение:

Program PR12;
Uses Crt;
Const n=5;m=3; //тут указывается, что матрица у тебя 5 на 3 а не 15 на 3.
Var
  O:array [1..n, 1..m] of integer;
  i,j,p,k:integer;
begin
  TextAttr:=$4B;ClrScr;
  randomize;
  for i:=1 to n do
  begin        // здесь не было for по j
    for j:=1 to m do
    begin
      O[i,j]:=random(20)-10;
      write(O[i,j]:4);
    end;
    writeln;
  end;

p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1; // это можно заменить на inc(K);
end;

writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.
А остальное вроде правильно.

Помог бы кто мне с моей лабой... В которой нужно разработать компилятор языка похожего на пхп... Скорее даже не компилятор, а транслятор в ассемблерный код.

Последний раз редактировалось Muxa1L; 22.11.2009 в 20:40..
 
Ответить с цитированием

  #1913  
Старый 22.11.2009, 22:54
Аватар для D=P=CH= MOD=
D=P=CH= MOD=
Постоянный
Регистрация: 15.08.2006
Сообщений: 404
Провел на форуме:
3811682

Репутация: 641
Отправить сообщение для D=P=CH= MOD= с помощью ICQ
По умолчанию

Помогите пожалуйста сделать работу. Язык Си. Буду очень благодарен помощи.

Задачка:
Создать оконное приложение. В клиентской области осуществить вывод графика предложенной вам функции. График функции должен быть дополнен координатными осями с указанием единичных отрезков. Создать диалоговое окно, позволяющее производить выбор диапазона вывода значений функции и осуществлять подписи на осях графика. Создать диалоговое окно, позволяющее производить масштабирование графика. Создать диалоговое окно, позволяющее производить смещение центра координат графика. Создать диалоговое окно, позволяющее изменять задаваемые параметры функции. Создать диалоговое окно в котором можно будет задавать цвета графика и координатных осей, и стиль линий для координатных осей.
Рисунок варианта:
http://img130.imageshack.us/img130/9003/clipimage002f.gif
 
Ответить с цитированием

  #1914  
Старый 23.11.2009, 14:24
Аватар для Syntaxys
Syntaxys
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме:
521298

Репутация: 20
По умолчанию

Матрицу K(m,n) заполнить слудующим образом. Элементам, находящимся на периферии (по периметру матрицы), присвоить значение периметру оставшейся матрицы - значение 2 и т.д. до заполнения матрицы.

Это как я понял должно быть что-то вроде:


0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 0
0 1 9 9 9 9 9 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 9 9 9 9 9 1 0
0 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0


Собственно, это сделал.

Дальше:

Рассматривая результат предыдущей задачи, как нумерацию слоев матрицы, сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.

То есть если было


10 0 0 0 0 0 0 0 0 0
10 2 1 1 1 1 1 1 1 0
10 1 3 9 9 9 9 9 1 0
10 1 9 4 3 3 3 9 1 0
10 1 9 3 5 2 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
10 0 0 0 0 0 0 0 0 0


Должно стать:


10 10 0 0 0 0 0 0 0 0
10 1 2 1 1 1 1 1 1 0
10 1 9 3 9 9 9 9 1 0
10 1 9 3 4 3 3 9 1 0
10 1 9 3 2 5 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0


Вот что получилось:

Код:
Program Neprogram;
type K=array [0..10,0..10] of integer;
Procedure zapolnenie(var x:K);
   Var m,n,gran,znach,i:integer;
       Begin
          randomize;
          gran:=0;
             for i:=1 to 10 do
               begin
               znach:=trunc((10-1)*random+1);
               gran:=gran+1;
                 for m:=1+gran to 10-gran do
                     for n:=1+gran to 10-gran do
                          x[m,n]:=znach;
               end;
              end;
Procedure povorot(var x:K);        //процедура поворота
   Var m,n,gran,i,buff,a:integer;
     Begin
       x[1,1]:=A;                         //Это чтоб проверить 
       x[2,1]:=A;                                 поворачивает или нет.
       x[3,1]:=A;
       x[4,1]:=A;
       x[5,1]:=A;
       x[6,1]:=A;
       x[7,1]:=A;
       x[8,1]:=A;
       x[9,1]:=A;
       x[10,1]:=A;
       gran:=0;                          //Изначально грань = 0
           for i:=1 to 5 do            //выполняем для x/2 слоев,
             begin                             в нашем случае для 5
                  buff:=x[n+gran,m+gran]; //сохраняем верхнее левое значение
                 //считаем левую границу периферии
                 n:=1+gran;
                     for m:=1+gran to 9-gran do
                         x[m,n]:=x[m+1,n];
//нижнюю
                  m:=10-gran;
                     for n:=1+gran to 9-gran do
                         x[m,n]:=x[m,n+1];
 //правую
                  n:=10-gran;
                     for m:=10-gran downto 2+gran do
                         x[m,n]:=x[m-1,n];
 //верхнюю
                  m:=1+gran;
                     for n:=10-gran downto 3+gran do
                         x[m,n]:=x[m,n-1];
                  x[n+gran+1,m+gran]:=buff;//возвращаем утерянное значение
                  gran:=gran+1; //увеличиваем грань
             end;
      end;
Var x:K;
    m,n:integer;

Begin
zapolnenie(x);
for m:=1 to 10 do
 begin
  writeln(' ');
   for n:=1 to 10 do
       write(x[m,n],' ');
  end;
  writeln(' ');
  povorot(x);
  writeln(' ');
  for m:=1 to 10 do
 begin
  writeln(' ');
   for n:=1 to 10 do
       write(x[m,n],' ');
  end;
  writeln(' ');
end.
Пишет ошибку на 35 строке:

Код:
buff:=x[n+gran,m+gran];
Код:
»22098432 - выход за границы диапозона изменения  индекса 0..10
Не могу сообразить почему :hmm:
 
Ответить с цитированием

  #1915  
Старый 23.11.2009, 16:40
Аватар для Filosof_77
Filosof_77
Новичок
Регистрация: 06.08.2009
Сообщений: 9
Провел на форуме:
19884

Репутация: 0
По умолчанию

привет момогите с задачками на С++
=)

1.Создать класс студент, который имеет имя, курс и идентификационный номер. Определить конструкторы, деструктор и функцию печати. Создать public-производный класс - студент-дипломник, который содержит тему диплома. Определить конструкторы за умалчиванием и с разным числом параметров, деструкторы, функцию печати. Определить функции переназначения названия диплома и идентификационного номера.

2. Создать класс комната, которая имеет площадь. Определить конструктор и метод доступа. Создать класс однокомнатная квартира, которая содержит комнату и кухню (ее площадь), этаж (комната содержится в классе однокомнатная квартира). Определить конструкторы, методы доступа. Определить public-производный класс однокомнатных квартир разных городов (дополнительный параметр - название города). Определить конструкторы, деструктор и функцию печати.

буду очень благодарен!!
 
Ответить с цитированием

  #1916  
Старый 24.11.2009, 20:47
Аватар для Xcontrol212
Xcontrol212
Постоянный
Регистрация: 13.02.2008
Сообщений: 505
Провел на форуме:
2916750

Репутация: 277


Отправить сообщение для Xcontrol212 с помощью ICQ
По умолчанию

Задача по С++!

Определить класс квадратная матрица. В класс включить два конструктора для определения матрицы по количеству элементов и путем копирования другой матрицы. Предусмотреть функцию нахождения седловой точки матрицы и функцию, меняющую местами элементы матрицы, симметричные относительно побочной диагонали.

Определить класс вектор. В класс включить два конструктора для определения вектора по его размеру и путем копирования другого вектора. При задании вектора по его размеру предусмотреть его заполнение случайными числами.
Определить операции над векторами:
| формирование нового вектора так, что каждый элемент нового вектора определяется следующим образом: c[I]=(a[I]>b[I])?b[I]:a[I];
-- определить наименьший элемент вектора.

Описать параметризованный класс массив с двумя аргументами. Предусмотреть выполнение функций формирования массива, поиска заданного значения в массиве.
 
Ответить с цитированием

  #1917  
Старый 26.11.2009, 02:02
Аватар для M.W.N.N.
M.W.N.N.
Участник форума
Регистрация: 05.01.2009
Сообщений: 191
Провел на форуме:
3020589

Репутация: 240
По умолчанию

как реализовать данное в консольном приложении на С?
Вводим действие допустим 4*6+3.
Поскольку только недавно начал изучать С я думал так:
Объявить строковую переменную в которой занесется 4*6+3,
потом через функцию преобразования строковых переменных в числовые atoi()
занести в числовую переменную (при объявлении переменной числовой a=4*3+2 считает нормально)
и она посчитает, но так не получается. Выводит только первый символ.
То что я пробовал:
Код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[255];
int b;
printf("vvedite deistvie: \n");
gets(a);
b=atoi(a);
printf("Ravno: %d",b);
}
В голову пришла мысль: записывать все содержимое в txt файл искать сперва
символы * и слева и справа от найденного знака числа и перемножать их и.т.д.
далее перейти к поиску делений, суммирования. Но как это реализовать?
 
Ответить с цитированием

  #1918  
Старый 26.11.2009, 10:48
Аватар для 0ldbi4
0ldbi4
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме:
584699

Репутация: 69
По умолчанию

M.W.N.N. Си не учил, но по аналогии с делфи просто перебираешь строку читаешь каждый символ до первого действия, записываешь в массив, после записываешь какое действие там было, ищешь дальше и тп до конца строки.
Также нужны функции или процедуры на сложение вычитание умн и дел, после того как прошол строку берешь первое действие в строке и стравниваешь его с "заготовкой" например если это сложение вызваешь функцию сложения с аргументами первыми элементами массива, ответ записываешь в индекс второго эллемента и продолжаешь..

Но тут не будет превильной последовательности выполнения действий типо сначало умножение а потом сложение, но это не сложно реализовать.

ЗЫ надеюсь помог
 
Ответить с цитированием

  #1919  
Старый 26.11.2009, 23:34
Аватар для tester8
tester8
Новичок
Регистрация: 25.10.2009
Сообщений: 6
Провел на форуме:
14454

Репутация: 0
По умолчанию

мне никто так и не помог..(
 
Ответить с цитированием

  #1920  
Старый 26.11.2009, 23:35
Аватар для tester8
tester8
Новичок
Регистрация: 25.10.2009
Сообщений: 6
Провел на форуме:
14454

Репутация: 0
По умолчанию

Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ