Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. KrabKN

    KrabKN New Member

    Joined:
    21 Jan 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Функция kol которая подсчитывает количество гласных в строке , передаваемых как параметр

    На СИ
     
  2. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    построить кубический сплайн(полином 3й степени, непрерывная вместе со своей первой и второй производной)удовлетворяющий дополнительным условиям dif(f(a))=A dif^2(f(b))=B
     
  3. SHARA

    SHARA Elder - Старейшина

    Joined:
    26 May 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    http://forum.antichat.ru/threadnav122076-226-10.html
     
  4. KrabKN

    KrabKN New Member

    Joined:
    21 Jan 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    #include <iostream.h>
    int main()
    {
    char buf[] = "bcdfghklmnpqrstvwxyz";
    char *str = new char [999];
    cin>>str;
    int count = 0;
    for(int i = 0; str != '\0'; i++)
    {
    for(int j = 0; buf[j] != '\0'; j++)
    {
    if(str == buf[j])
    {
    count++; break;
    }
    }
    }
    cout << count << endl;
    }

    вот а как она будет выгледеть с функцыей kol?
     
  5. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    2KrabKN, вот вам функция:
    Code:
    #include <iostream>
    using namespace std;
    int kol(char * str);
    int main()
    	{
    	char *str = new char [999];
    	cin>>str;
    	cout<<kol(str);
    	}
    int kol(char * str)
    	{
    	char buf[] = "bcdfghklmnpqrstvwxyz";
    	int count = 0;
    	for(int i = 0; str[i] != '\0'; i++)
    		{
    		for(int j = 0; buf[j] != '\0'; j++)
    			{
    			if(str[i] == buf[j])
    				{ 
    				count++; break;
    				}
    			}
    		}
    	return count;
    	}
    
    Но вот эта программа крайне не корректна, да и написана с ошибками, которые могут превести неизвестно к чему. Да и ищет она не гласные, а согласные.

    Могу предложить вам другой вариант (накидал по быстрому):

    Code:
    #include <iostream>
    #include <string>
    using namespace std;
    int kol(string str);
    int main(int argc, char * argv[])
    	{
    	string slovo;
    	cout<<"Vvedite slovo>";
    	cin>>slovo;
    	cout<<kol(slovo);
    	return 0;
    	}
    int kol(string str)
    	{
    	string bukv = "AEIOUY";
    	int found = 0;
    	int i = 0;
    	int i2;
    	int c = bukv.size();
    	while(i < str.size())
    		{
    		i2 = 0;
    		while(i2 < c)
    			{
    			if(str[i] == bukv[i2])
    				{
    				found++;
    				}
    			i2++;
    			}
    		i++;
    		}
    	return found;
    	}
    
     
    #2325 Ins3t, 17 Feb 2010
    Last edited: 17 Feb 2010
    1 person likes this.
  6. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    как работает эта программа? я в С оч.слаб... что будет на экране в результате работы программы? В самом коде могут быть ошибки...
    пишет: Declaration terminated incorrectly
    что не так?
     
    #2326 mr_walker, 17 Feb 2010
    Last edited: 17 Feb 2010
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    В программе допущены ошибки.
    Рабочий вариант:

    Code:
    #include<iostream.h>
    int * sfirst_function(void);
    int *isecond_function(void);
    void main()
    	{
    	int *pi=sfirst_function();
    	isecond_function();
        cout << "Znachennya virne?" << *pi;}
        int * sfirst_function(void)
    	{
    	int ilocal_to_first=11;
        return &ilocal_to_first;
    	}
    int *isecond_function(void)
    	{
    	int ilocal_to_second=44;
    	return &ilocal_to_second;
    	}
    
    Программа выведит сообщение: "Znachennya virne?"
     
    #2327 Ins3t, 17 Feb 2010
    Last edited: 17 Feb 2010
    1 person likes this.
  8. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    еще один вариант.

    Code:
    #include <iostream>
    
    int *sfirst_function(void);
    int *isecond_function(void);
    
    int * sfirst_function(void)
    {
    	int ilocal_to_first=11;
    	return &ilocal_to_first;}
    
    int *isecond_function(void)
    {
    	int ilocal_to_second=44;
    	return &ilocal_to_second;
    }
    void main()
    {
    	int *pi=sfirst_function();
    	printf("First Function = %d\n",*pi);
    	int *si= isecond_function();
    	printf("Second Function = %d\n",*si);
    }
    
    На экране надпись:
    First Function =11
    Second Function = 44
     
    _________________________
    2 people like this.
  9. rankor777

    rankor777 Elder - Старейшина

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
    PHP:
    int *sfirst_function(void);
    int *isecond_function(void);
    Зафига? Это надо объявлять, если собираешься экспортировать эти функции

    PHP:
    int ilocal_to_first=11
    return &
    ilocal_to_first;
    Так лучше не делать - локальные переменные удаляются из стека после возврата управления функцией, и не факт, что эта ячейка памяти не будет перезаписана до того, как вы это используете. Лучше передать возвращаемую переменную по значению, а не по ссылке
     
    #2329 rankor777, 17 Feb 2010
    Last edited: 17 Feb 2010
  10. Sokolik

    Sokolik Banned

    Joined:
    5 Mar 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Нужно решить задачку на Си:

    Дана строка символов. Известно, что среди символов строки имеется хотя бы один символ, отличный от пробела. Преобразовать строку, удалив группы пробелов, которыми начинается и заканчивается строка. Если указанных групп пробелов нет, то оставить строку без изменения.
     
  11. rankor777

    rankor777 Elder - Старейшина

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
    PHP:
    char *trim(char *str)
    {
       
    int len strlen(str); // строка должна быть с завершающим нулем!
       
    int pos 0;
       
    char *result = new char[len];
       
    ZeroMemory(resultlen);
       for ( 
    int i 0len 1i++ ){
          if ( 
    memcmp(str[i], "0") != ){
             
    result[pos] = str[i];
             
    pos++;
          }
       }
       return 
    result;
    }
    Писал по памяти, могут некоторые аргументы у функций отличаться, но смысл, я думаю понятен
     
  12. Sokolik

    Sokolik Banned

    Joined:
    5 Mar 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    не правильная функция-memcmp, zeromemory-identifier not found
     
  13. rankor777

    rankor777 Elder - Старейшина

    Joined:
    11 Jan 2008
    Messages:
    15
    Likes Received:
    23
    Reputations:
    0
    Замените условие цикла на for ( int i = 0; i < len - 1; i++ )
    И подключите файлы string.h и windows.h
     
  14. DrugS

    DrugS New Member

    Joined:
    25 Aug 2008
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    привет!
    Тема работы: Динамический список динамических списков
    Язык: Delphi

    Подскажите, что почитать или сам алгоритм описания данной структуры.

    Спасибо.
     
  15. piranjia

    piranjia New Member

    Joined:
    18 Feb 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Огромная просьба Помогите пожалуйста на Borland C++ решить следующие задачки:
    Задача 1. Написать программу для вычерчивания набора из N кривых, для которых определены параметрические уравнения:
    x=x0 +(b-a)cosφ+acos⁡((b-a)φ/a)
    x=y0 +(b-a)sinφ-asin⁡((b-a)φ/a)
    Возьмите фиксированные значения a, b, соблюдая условия b>a, 0< φ<2π, b/a=8.
    Задача 2. Разработать и реализовать алгоритм для отсечения частей линий, если окно задано в форме пятиугольника. (Алгоритм Коэна-Сазерленда)
     
  16. NTFF

    NTFF New Member

    Joined:
    9 Dec 2009
    Messages:
    23
    Likes Received:
    0
    Reputations:
    0
    ПОМОГИТЕ С ПАСКАЛЕМ РИСУЕТ НЕ ТОТ ГРАФИК ЧТО НАДО

    Вот ссылка на то что должно получится http://xmages.net/upload/1496d668.jpg
    http://xmages.net/upload/151f94b2.png

    {Programm for y(x)=sgrs a*x+b.}
    program grafic;
    uses crt,graph;
    var
    grminx,grminy,
    grmaxx,grmaxy : integer;
    a, b,
    stepx,
    minx,miny,
    maxx,maxy : real;
    flag : boolean;
    punkt : integer;
    s : string;
    ercode : integer;


    function pow(x,p:real):real;
    begin
    pow:=exp(ln(x)*p);
    end;


    function log10(x:real):real;
    begin
    log10:=ln(x)/ln(10);
    end;


    function grinit:boolean;
    var
    grdriver,
    grmode,
    ercode :integer;
    begin
    grinit := True;
    grdriver:= Detect;
    initgraph(grdriver,grmode,'C:\lang\bp\BGI');
    ercode:=graphresult;
    if ercode<>grok then
    begin
    writeln('error graphic:',grapherrormsg(ercode));
    writeln('programm is stopped. ');
    grinit := False;
    end;
    end;


    function getgrx(x:real):integer;
    begin
    getgrx:=round((grmaxx-grminx)/(maxx-minx)*(x-minx))+grminx;
    end;



    function getgry(y:real):integer;
    begin
    getgry:=round((grmaxy-grminy)/(maxy-miny)*(y-miny))+grminy;
    end;


    function f(a,b,x:real):real;
    begin
    f:=sqrt(a*x+b);
    end;

    procedure GetMaxMinY(var miny : real; var maxy : real);
    var
    x,y : real;
    begin

    miny := f(a,b,minx);
    maxy := f(a,b,minx);
    x := minx+stepx;
    repeat
    y:=f(a,b,x);
    if y<miny then miny:=y;
    if y>maxy then maxy:=y;
    x:=x+stepx;
    until x>maxx;
    end;


    procedure FindXYAxes(var x : integer; var y:integer);
    begin

    if ((getgrx(0)>=grminx) and (getgrx(0)<=grmaxx)) then
    x := getgrx(0)
    else
    x := grminx;


    if ((getgry(0)<=grminy) and (getgry(0)>=grmaxy)) then
    y := getgry(0)
    else
    y := grminy;
    end;


    procedure DrawMesh;
    var
    labelsx,labelsy,
    blockx,blocky,
    tens : real;
    grx,gry : integer;
    s : string;
    x,y : real;
    axisx,axisy : integer;
    begin

    setcolor(lightgreen);
    rectangle(grminx,grminy,grmaxx,grmaxy);
    rectangle(grminx-1,grminy-1,grmaxx+1,grmaxy+1);

    labelsx:=15;
    labelsy:=15;


    blockx:=(maxx-minx)/labelsx;

    tens:=pow(10,round(log10(blockx)));
    blockx:=int(blockx/tens+1)*tens;


    blocky:=(maxy-miny)/labelsy;

    tens:=pow(10,round(log10(blocky)));
    blocky:=int(blocky/tens+1)*tens;


    settextstyle(SmallFont,HorizDir,2);


    FindXYAxes(axisx,axisy);


    x:=int(minx/blockx)*blockx;

    repeat

    grx:=getgrx(x);

    if ((grx>=grminx) and (grx<=grmaxx)) then
    begin

    setcolor(darkgray);
    line(grx,grminy,grx,grmaxy);

    setcolor(lightgreen);
    line(grx,axisy-2,grx,axisy+2);

    setcolor(yellow);
    str(x:5:2,s);
    outtextxy(grx+2,axisy+2,s);
    end;
    x:=x+blockx;
    until x>maxx;


    y:=int(miny/blocky)*blocky;




    repeat
    gry:=getgry(y);


    if ((gry<=grminy) and (grx>=grmaxy)) then
    begin

    setcolor(darkgray);
    line(grminx,gry,grmaxx,gry);

    setcolor(lightgreen);
    line(axisx-2,gry,axisx+2,gry);


    setcolor(yellow);
    str(y:5:2,s);
    outtextxy(axisx+2,gry+2,s);
    end;
    y:=y+blocky;
    until y>maxy;

    end;

    procedure DrawAxes;
    var
    s : string;
    axisx, axisy : integer;
    begin

    FindXYAxes(axisx,axisy);

    setfillstyle(0,0);

    bar(getgrx(0)+1,getgry(0)+1,getgrx(0)+40,getgry(0)+15);
    outtextxy(getgrx(0)+4,getgry(0)+2,'0');


    setcolor(white);
    line(getgrx(minx)-20,axisy,getgrx(maxx)+20,axisy);


    moveto(getgrx(maxx)+20,axisy);
    linerel(-10,2); linerel(3,-2); linerel(-3,-2); linerel(10,2);


    outtextxy(getgrx(maxx)+15,axisy-10,'x');


    line(axisx,getgry(miny)+20,axisx,getgry(maxy)-20);


    moveto(axisx,getgry(maxy)-20);
    linerel(2,10); linerel(-2,-3); linerel(-2,3); linerel(2,-10);

    outtextxy(axisx-15,getgry(maxy)-10,'y');

    str(a:4:2,s);
    s := ' y(x)='+s+'*sin(x)) - sinusoid';
    outtextxy(GetMaxX div 2 - 100 ,GetMaxY-25,s);
    end;

    procedure DrawGraphic;
    var
    first : boolean;
    grx,gry : integer;
    x,y : real;
    begin

    setcolor(LightBlue);
    first:=true;
    x:=minx;

    repeat
    y:=f(a,b,x);

    grx:=getgrx(x);
    gry:=getgry(y);
    if first then
    begin
    moveto(grx,gry);
    putpixel(grx,gry,getcolor);
    first:=false;
    end
    else lineto(grx,gry);
    x:=x+stepx;
    until x>maxx;
    end;

    BEGIN
    flag := false;
    repeat
    clrscr;
    writeln(' --== MENU ==--');
    writeln('1. Input parameter function');
    writeln('2. Draw graph function');
    writeln('3. Exit');
    writeln;
    writeln('Choose point menu -> ');
    readln(punkt);
    case punkt of

    1:begin
    clrscr;
    repeat
    repeat
    writeln('Input min value x (radian) -> ');
    readln(s);
    val(s,minx,ercode);
    if (ercode <> 0) then
    writeln('Error min value x!');
    until (ercode=0);
    repeat
    writeln('Input max value x (radian) -> ');
    readln(s);
    val(s,maxx,ercode);
    if (ercode <> 0) then
    writeln('Error max value x !');
    until (ercode=0);
    if (minx>=maxx) then
    writeln('Min value x must be smaller max!');
    until (minx<maxx);


    repeat
    writeln('Input value a -> ');
    readln(s);
    val(s,a,ercode);
    if (ercode <> 0) then
    writeln('Error value a!');
    until (ercode=0);
    flag := true;

    repeat
    writeln('Input value b -> ');
    readln(s);
    val(s,a,ercode);
    if (ercode <> 0) then
    writeln('Error value b!');
    until (ercode=0);
    flag := true;
    end;


    2: begin

    if (flag) then
    begin
    if (grinit) then
    begin
    grminx:=48;
    grmaxx:=getmaxx-48;
    grminy:=getmaxy-48;
    grmaxy:=24;
    stepx:=(maxx-minx)/150;
    GetMaxMinY(miny,maxy);
    DrawMesh;
    DrawAxes;
    DrawGraphic;
    readkey;
    closegraph;
    end
    end
    else
    begin
    writeln('You need at the fist choose point 1 for value function!');
    readkey;
    end;
    end;
    end;
    until (punkt=3);
    END.
     
    #2336 NTFF, 21 Feb 2010
    Last edited: 23 Feb 2010
  17. qwert135

    qwert135 New Member

    Joined:
    22 Nov 2009
    Messages:
    53
    Likes Received:
    0
    Reputations:
    0
    Народ,помогите с лабой плиз.Задание такое: дан какой-то текстовый файл в котором записано предложение; надо чтобы прога открывала этот файл,в каждом слове заменяла первую букву на последнюю и записывала преобразованое предложение в новый текстовый файл.Язык-паскаль.Заранее спасибо:)
     
  18. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    9. Используя редактор VI, написать программу на языке СИ и запустить ее на трансляцию в фоновом режиме.
    ------------
    cобственно покажите элементарный кусок программы на си для linux
     
  19. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    #include <stdio.h>

    int main( int argc,char * argv[] ) {
    printf( "linux forever!" );
    return 0;
    }

    gcc proga.c -o proga
     
    1 person likes this.
  20. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    ребята, не совсем лабораторная работа, но все же из этой серии:
    Вот скин, там надо понять где ошибка и какую атаку можно принимать при таком раскладе.. внизу есть варинатов ответ.
    Я бы хотел, чтоб обяснили что к чему:
    [​IMG]
     
Thread Status:
Not open for further replies.