Форум программистов, компьютерный форум CyberForum.ru

Лабораторные работы по информатике. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.74
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
09.12.2010, 17:58     Лабораторные работы по информатике. #1
Добрый вечер. помогите пожалуйста решить... я в С++ ничего не понимаю... а скоро уже сдавать...
Вот задание: 1. Дан текст из 15 литер. Напечатать только строчные английские буквы, входящие в этот текст.
2.Для матрицы А(10,15) вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы. Результаты отпечатать в виде двух строк.


Заранее спасибо! Вся надежда на вас!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.12.2010, 18:26     Лабораторные работы по информатике. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <cctype>
 
int main(){
    std::string s;
    std::cout << "String: ";
    std::getline(std::cin, s);
    std::cout << "Lowercase: ";
    for ( std::string::const_iterator i = s.begin(); i != s.end(); ++i )
        if ( islower(*i) )
            std::cout << *i;
    std::cout << std::endl;
    return 0;
}
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
09.12.2010, 19:11  [ТС]     Лабораторные работы по информатике. #3
Ой спасибо большое!!!!!! Прям очень выручили!!!!!!!

Добавлено через 42 секунды
А вторую сможете написать?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.12.2010, 19:41     Лабораторные работы по информатике. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main(){
    const int ROWS(10);
    const int COLUMNS(15);
    int matrix[ROWS][COLUMNS] = { 0 }, possum[COLUMNS] = { 0 }, poscnt[COLUMNS] = { 0 };
    
    srand(time(NULL));
    std::cout << "Matrix:" << std::endl;
    for ( int i = 0; i < ROWS; ++i ){
        for ( int j = 0; j < COLUMNS; ++j )
            std::cout << std::right << std::setw(4) << ( matrix[i][j] = rand() % 21 - 10);
        std::cout << std::endl;
    }
    
    for ( int j = 0; j < COLUMNS; ++j ){
        for ( int i = 0; i < ROWS; ++i ){
            if ( matrix[i][j] > 0 ){
                possum[j] += matrix[i][j];
                poscnt[j]++;
            }
        }
    }
    
    std::cout << "Count of positive elements:" << std::endl;
    for ( int i = 0; i < COLUMNS; ++i )
        std::cout << std::right << std::setw(4) << poscnt[i];
    std::cout << std::endl;
    
    std::cout << "Sum of positive elements:" << std::endl;
    for ( int i = 0; i < COLUMNS; ++i )
        std::cout << std::right << std::setw(4) << possum[i];
    std::cout << std::endl;
    
    return 0;
}
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
09.12.2010, 23:06  [ТС]     Лабораторные работы по информатике. #5
СПАСИБО!!!!!!!!!!!!!ВЫРУЧИЛИ!!!!!!!!!!!

Добавлено через 3 часа 18 минут
Андрюш, выручите еще с двумя лабами...пожалуйста....
1.Вычислить координату центра тяжести трех материальных точек с массами m1,
m2, m3 и координатами (X1,Y1), (X2,Y2), (X3,Y3) по формулам:
X=(m1X1+m2X2+m3X3)/M, Y=(m1Y1+m2Y2+m3Y3)/M, где M=m1+m2+m3,
используя подпрограмму-функцию для вычисления X и Y.

2.Сформировать массив данных с помощью структуры. Предметная область –
данные о студентах (номер по порядку, ФИО, адрес, специальность).
Отсортировать полученный список по полю «ФИО». Вывод результатов
оформить в виде таблицы.

Заранее спасибо огромнейшее!
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.12.2010, 23:23     Лабораторные работы по информатике. #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
 
struct coord
{
    double x, y, mass;
    coord(double x_=0, double y_=0, double mass_=0):x(x_), y(y_), mass(mass_)
    {
    }
};
 
int main()
{
    const int n=3;
    std::vector<coord> Vec;
    std::generate_n(std::back_inserter(Vec), n, []() -> coord
    {
         double x, y, m;
         std::cout<<"Enter x, y and m: ";
         std::cin>>x>>y>>m;
         return coord(x, y, m);   
    });
    double M=0, X=0, Y=0;
    std::for_each(Vec.begin(), Vec.end(), [&M, &X, &Y](coord t)
    {
        M+=t.mass; 
        X+=t.mass*t.x;
        Y+=t.mass*t.y;
        std::cout<<"X: "<< t.x <<" Y: "<< t.y <<" Mass: "<< t.mass <<'\n';
    });
    if(M == 0)
    {
        std::cerr<<"There are no X and Y beacause M is zero\n";
        system("pause");
        return 1;
    }
    X/=M;
    Y/=M;
    std::cout <<"Final X is: "<< X <<" and final Y is: "<< Y <<'\n';
    system("pause");
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.12.2010, 00:16     Лабораторные работы по информатике. #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
struct Point {
    double x;
    double y;
    double m;
    Point() : x(0.0), y(0.0), m(0.0) {}
};
 
Point calcXY(Point * points, int count){
    Point p;
    
    for ( int i = 0; i < count; ++i ){
        p.x += points[i].x * points[i].m;
        p.y += points[i].y * points[i].m;
        p.m += points[i].m;
    }
    p.x /= p.m;
    p.y /= p.m;
    
    return p;
}
    
int main(){
    const int NUM_POINTS(3);
    Point points[NUM_POINTS], res;
    
    for ( int i = 0; i < NUM_POINTS; ++i ){
        std::cout << "Point #" << ( i + 1 ) << std::endl;
        std::cout << "X = ";
        std::cin >> points[i].x;
        std::cout << "Y = ";
        std::cin >>points[i].y;
        std::cout << "M = ";
        std::cin >> points[i].m;
    }
    
    res = calcXY(points, NUM_POINTS);
    std::cout << "Center of gravity:" << std::endl;
    std::cout << "X = " << res.x << std::endl;
    std::cout << "Y = " << res.y << std::endl;
    
    return 0;
}
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
10.12.2010, 07:02  [ТС]     Лабораторные работы по информатике. #8
Спасибо большое!!!!А со 2 лабой поможете?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.12.2010, 10:09     Лабораторные работы по информатике. #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <iomanip>
#include <string>
#include <set>
#include <windows.h>
    
std::string win2dos(std::string s){
    static char buf[1024];
    CharToOemA(s.c_str(), buf);
    return std::string(buf);
}
 
std::string dos2win(std::string s){
    static char buf[1024];
    OemToCharA(s.c_str(), buf);
    return std::string(buf);
}
 
struct Student {
    std::string name;
    std::string address;
    std::string specialty;
    bool operator < (const Student & another) const {
        return name < another.name;
    }
};
 
int menu(){
    int res;
    std::cout << std::endl;
    std::cout << win2dos("1 - Добавить информацию о студенте") << std::endl;
    std::cout << win2dos("2 - Показать список студентов") << std::endl;
    std::cout << win2dos("0 - Выход") << std::endl;
    std::cout << "> ";
    std::cin >> res;
    std::cin.ignore(1024, '\n');
    return res;
}
 
int main(){
    std::multiset<Student> students;
    Student dummy;
    int m;
    std::string s;
    
    while ( m = menu() ){
        switch(m){
            case 1:
                std::cout << win2dos("ФИО: ");
                std::getline(std::cin, s);
                dummy.name = dos2win(s);
                std::cout << win2dos("Адрес: ");
                std::getline(std::cin, s);
                dummy.address = dos2win(s);
                std::cout << win2dos("Специальность: ");
                std::getline(std::cin, s);
                dummy.specialty = dos2win(s);
                students.insert(dummy);
                break;
            case 2:
                if ( students.empty() ){
                    std::cout << win2dos("Список пуст.") << std::endl;
                    break;
                }
                std::cout << std::left << std::setw(25) << win2dos("ФИО") << std::setw(25) << win2dos("Адрес") << std::setw(20) << win2dos("Специальность") <<std::endl;
                std::cout << "----------------------------------------------------------------------" << std::endl;
                for ( std::multiset<Student>::const_iterator i = students.begin(); i != students.end(); ++i )
                    std::cout << std::left << std::setw(25) << win2dos(i->name) << std::setw(25) << win2dos(i->address) << std::setw(20) << win2dos(i->specialty) << std::endl;
                std::cout << "----------------------------------------------------------------------" << std::endl;
                break;
            default:
                std::cout << win2dos("Неизвестная команда!") << std::endl;
        }
    }
    
    return 0;
}
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
10.12.2010, 13:31  [ТС]     Лабораторные работы по информатике. #10
Анрей, спасибо вам большое А вы случайно блок схемы не делаете?
easybudda
10.12.2010, 13:39
  #11

Не по теме:

Цитата Сообщение от Алёнка58 Посмотреть сообщение
А вы случайно блок схемы не делаете?
не-а... да я и не умею - путаюсь всё время, что там в ромбиках, а что в квадратиках...

Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
12.12.2010, 19:16  [ТС]     Лабораторные работы по информатике. #12
Андрей, а можно эти лабораторные как нибудь упростить.. а то препод в шоке был) сказал что такое мы еще не проходили... более простым способом можешь написать?
Заранее благодарна...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.12.2010, 19:52     Лабораторные работы по информатике. #13
Цитата Сообщение от Алёнка58 Посмотреть сообщение
препод в шоке был) сказал что такое мы еще не проходили...
Ну нормально... А что проходили? Там "упростить" - по сути увеличить объём каждой программы в три - пять раз... Вариант "приснилось" не пройдёт?
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
12.12.2010, 22:20  [ТС]     Лабораторные работы по информатике. #14
Дело в том, что мы этот язык только начали проходить...Я принесла ему эти коды он в шоке посмотрел на меня...и говорит :"А ни че так что мы это еще не проходили?" вот что теперь делать я и не знаю..std это ведь обращение к функции...а мы это еще не проходили...

Добавлено через 1 час 42 минуты
Андрюш, а вы случайно в ANSI C не работаете? оказывается мне на этом языке нужно написать...
Kill100
 Аватар для Kill100
359 / 248 / 33
Регистрация: 11.12.2010
Сообщений: 1,068
Завершенные тесты: 1
12.12.2010, 22:33     Лабораторные работы по информатике. #15
ANSI C совершенно не чем не отличается от си не считая что в нем не допускается использования не стандартных (специфичных) для того или иного компилятора или системы команд не поддерживаемых другими компиляторами или системами.
Проще говоря написание кросс платформенного исходного кода.
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
12.12.2010, 22:33     Лабораторные работы по информатике. #16
easybudda
дружище, не слушай ее. она использует тебя.
Алёнка58
 Аватар для Алёнка58
0 / 0 / 0
Регистрация: 09.12.2010
Сообщений: 13
12.12.2010, 22:38  [ТС]     Лабораторные работы по информатике. #17
Парни мне не смешно, на носу сессия и я вылечу из-за этой информатики проклятой. Так что делать то? Вы мне по-русски объясните =(
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
12.12.2010, 22:40     Лабораторные работы по информатике. #18
Алёнка58, Все елементарно - учить, что вполне логично!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.12.2010, 23:00     Лабораторные работы по информатике. #19
Цитата Сообщение от Алёнка58 Посмотреть сообщение
я в С++ ничего не понимаю
Цитата Сообщение от Алёнка58 Посмотреть сообщение
в ANSI C
Это разные языки программирования...
1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <ctype.h>
 
#define MAX_LEN 16 /* 15 + 1 */
 
int main(void){
    char buf[MAX_LEN] = { 0 }, * p;
    
    printf("String: ");
    scanf("%15[^\n]", buf);
    printf("Lowercase: ");
    for ( p = buf; *p; ++p )
        if ( islower(*p) )
            printf("%c", *p);
    printf("\n");
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 23:13     Лабораторные работы по информатике.
Еще ссылки по теме:

Олимпиада по информатике C++
C++ Лабораторные работы по C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
12.12.2010, 23:13     Лабораторные работы по информатике. #20
Добавлено через 16 секунд
easybudda
Если не затруднит, вторую еще сделай, плиз.
Yandex
Объявления
12.12.2010, 23:13     Лабораторные работы по информатике.
Закрытая тема Создать тему
Опции темы

Текущее время: 17:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru