• IOS OC 计算器算法(不考虑优先级)


    个人见解:为还在计算器算法方面迷惑的同学一个数据处理解决方案:定义一个可变数组array,一个可变字符串str,使字符通过[array addObject:str];方法添加到可变数组,每当触发运算符的按键时,利用[array addObject:[[NSMutableString alloc]initWithCapacity:0]];再次为可变数组添加一个字符串,我们获取按键的值通过 [[array lastObject] appendString:myBut.titleLabel.text];方法添加到数组最后一个元素(可变字符串)中,最终可变数组里的每个字符串,除了第一个字符串外,每一个字符串的内容为(字符串首位是运算符,后边全是数字、小数点等),运算符也就是每个字符串的标志,标志着它与何种方式参与运算 下面上段按下等号时的代码if([myBut.titleLabel.text isEqualToString:@"="])
    {
    float sum=[str floatValue];
    for(id obj in array)
    {
    if([obj hasPrefix:@"+"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum + [obj floatValue];
    }
    else if([obj hasPrefix:@"-"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum - [obj floatValue];
    }
    else if([obj hasPrefix:@"*"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum * [obj floatValue];
    }
    else if([obj hasPrefix:@"/"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum / [obj floatValue];
    }
    }
    NSString *str1 = [NSString stringWithFormat:@"%f",sum];
    [array removeAllObjects];
    str = [@"" mutableCopy];
    [array addObject:str];
    myLable.text = str1;
    }在这里用到了解决《触屏手写软件》(例如:涂鸦)的思想,如有雷同纯属巧合,刘冠2015.11.11

  • 相关阅读:
    Unity3D之Mesh【创建动态Mesh的学习网站】
    Unity3D之Mesh(三)绘制四边形
    Unity3D之Mesh(二)为三角形添加纹理
    unity的一些重要技巧(转)【整理他人的东西】
    Unity3D之Mesh(一)绘制三角形
    Unity3D连接WCF
    zabbix server搭建遇到的问题
    zabbix server for Centos 6.3
    JAVA笔记整理(九),JAVA中的集合
    MySQL主从复制(Centos6.3&MySQL5.6)
  • 原文地址:https://www.cnblogs.com/liuguan/p/4957626.html
Copyright © 2020-2023  润新知